Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
316 volume VI os16<br />
Sorgenti della libreria generale 317<br />
«<br />
2510015 | }<br />
2510016 | }<br />
2510017 | return (-1);<br />
2510018 |}<br />
105.9.9 lib/stdio/fgets.c<br />
Si veda la sezione 98.33.<br />
2520001 |#include <br />
2520002 |#include <br />
2520003 |#include <br />
2520004 |#include <br />
2520005 |//----------------------------------------------------------------------<br />
2520006 |char *<br />
2520007 |fgets (char *restrict string, int n, FILE *restrict fp)<br />
2520008 |{<br />
2520009 | ssize_t size_read;<br />
2520010 | int b; // Index inside the string buffer.<br />
2520011 | //<br />
2520012 | for (b = 0; b < (n-1); b++, string[b] = 0)<br />
2520013 | {<br />
2520014 | size_read = read (fp->fdn, &string[b], (size_t) 1);<br />
2520015 | //<br />
2520016 | if (size_read fdn);<br />
2530010 | }<br />
2530011 | errset (EBADF); // Bad file descriptor.<br />
2530012 | return (-1);<br />
2530013 |}<br />
105.9.11 lib/stdio/fopen.c<br />
Si veda la sezione 98.35.<br />
2540001 |#include <br />
2540002 |#include <br />
2540003 |#include <br />
2540004 |#include <br />
2540005 |#include <br />
2540006 |#include <br />
2540007 |#include <br />
2540008 |#include <br />
2540009 |#include <br />
2540010 |<br />
2540011 |//----------------------------------------------------------------------<br />
2540012 |FILE *<br />
2540013 |fopen (const char *path, const char *mode)<br />
2540014 |{<br />
2540015 | int fdn;<br />
2540016 | //<br />
2540017 | if (strcmp (mode, "r") ||<br />
2540018 | strcmp (mode, "rb"))<br />
2540019 | {<br />
2540020 | fdn = open (path, O_RDONLY);<br />
2540021 | }<br />
2540022 | else if (strcmp (mode, "r+") ||<br />
2540023 | strcmp (mode, "r+b") ||<br />
2540024 | strcmp (mode, "rb+"))<br />
2540025 | {<br />
2540026 | fdn = open (path, O_RDWR);<br />
2540027 | }<br />
2540028 | else if (strcmp (mode, "w") ||<br />
2540029 | strcmp (mode, "wb"))<br />
2540030 | {<br />
2540031 | fdn = open (path, O_WRONLY|O_CREAT|O_TRUNC, 0666);<br />
2540032 | }<br />
2540033 | else if (strcmp (mode, "w+") ||<br />
2540034 | strcmp (mode, "w+b") ||<br />
2540035 | strcmp (mode, "wb+"))<br />
2540036 | {<br />
2540037 | fdn = open (path, O_RDWR|O_CREAT|O_TRUNC, 0666);<br />
105.9.13 lib/stdio/fputc.c<br />
Si veda la sezione 98.37.<br />
2560001 |#include <br />
2560002 |#include <br />
2560003 |#include <br />
2560004 |#include <br />
2560005 |#include <br />
2560006 |//----------------------------------------------------------------------<br />
2560007 |int<br />
2560008 |fputc (int c, FILE *fp)<br />
2560009 |{<br />
2560010 | ssize_t size_written;<br />
2560011 | char character = (char) c;<br />
2560012 | size_written = write (fp->fdn, &character, (size_t) 1);<br />
2560013 | if (size_written < 0)<br />
2560014 | {<br />
2560015 | fp->eof = 1;<br />
2560016 | return (EOF);<br />
2560017 | }<br />
2560018 | return (c);<br />
2560019 |}<br />
105.9.14 lib/stdio/fputs.c<br />
Si veda la sezione 98.38.<br />
2570001 |#include <br />
2570002 |#include <br />
2570003 |//----------------------------------------------------------------------<br />
2570004 |int<br />
2570005 |fputs (const char *restrict string, FILE *restrict fp)<br />
2570006 |{<br />
2570007 | int i; // Index inside the string to be printed.<br />
2570008 | int status;<br />
2570009 |<br />
2570010 | for (i = 0; i < strlen (string); i++)<br />
2570011 | {<br />
2570012 | status = fputc (string[i], fp);<br />
2570013 | if (status == EOF)<br />
2570014 | {<br />
2570015 | fp->eof = 1;<br />
2570016 | return (EOF);<br />
2570017 | }<br />
2570018 | }<br />
2570019 | return (0);<br />
2570020 |}<br />
«<br />
«