24.01.2014 Views

Codice

Codice

Codice

SHOW MORE
SHOW LESS

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 />

«

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!