You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
318 volume VI os16<br />
Sorgenti della libreria generale 319<br />
«<br />
105.9.15 lib/stdio/fread.c<br />
Si veda la sezione 98.39.<br />
2610018 | }<br />
2610019 |}<br />
2580001 |#include <br />
2580002 |#include <br />
2580003 |//----------------------------------------------------------------------<br />
2580004 |size_t<br />
2580005 |fread (void *restrict buffer, size_t size, size_t nmemb,<br />
2580006 | FILE *restrict fp)<br />
2580007 |{<br />
2580008 | ssize_t size_read;<br />
2580009 | size_read = read (fp->fdn, buffer, (size_t) (size * nmemb));<br />
2580010 | if (size_read == 0)<br />
2580011 | {<br />
2580012 | fp->eof = 1;<br />
2580013 | return ((size_t) 0);<br />
2580014 | }<br />
2580015 | else if (size_read < 0)<br />
2580016 | {<br />
2580017 | fp->error = 1;<br />
2580018 | return ((size_t) 0);<br />
2580019 | }<br />
2580020 | else<br />
2580021 | {<br />
2580022 | return ((size_t) (size_read / size));<br />
2580023 | }<br />
2580024 |}<br />
105.9.19 lib/stdio/fseeko.c<br />
Si veda la sezione 98.43.<br />
2620001 |#include <br />
2620002 |#include <br />
2620003 |//----------------------------------------------------------------------<br />
2620004 |int<br />
2620005 |fseeko (FILE *fp, off_t offset, int whence)<br />
2620006 |{<br />
2620007 | off_t off_new;<br />
2620008 | off_new = lseek (fp->fdn, offset, whence);<br />
2620009 | if (off_new < 0)<br />
2620010 | {<br />
2620011 | fp->error = 1;<br />
2620012 | return (-1);<br />
2620013 | }<br />
2620014 | else<br />
2620015 | {<br />
2620016 | return (0);<br />
2620017 | }<br />
2620018 |}<br />
«<br />
«<br />
105.9.16 lib/stdio/freopen.c<br />
Si veda la sezione 98.35.<br />
2590001 |#include <br />
2590002 |#include <br />
2590003 |#include <br />
2590004 |#include <br />
2590005 |#include <br />
2590006 |#include <br />
2590007 |#include <br />
2590008 |#include <br />
2590009 |#include <br />
2590010 |<br />
2590011 |//----------------------------------------------------------------------<br />
2590012 |FILE *<br />
2590013 |freopen (const char *restrict path, const char *restrict mode,<br />
2590014 | FILE *restrict fp)<br />
2590015 |{<br />
2590016 | int status;<br />
2590017 | FILE *fp_new;<br />
2590018 | //<br />
2590019 | if (fp == NULL)<br />
2590020 | {<br />
2590021 | return (NULL);<br />
2590022 | }<br />
2590023 | //<br />
2590024 | status = fclose (fp);<br />
2590025 | if (status != 0)<br />
2590026 | {<br />
2590027 | fp->error = 1;<br />
2590028 | return (NULL);<br />
2590029 | }<br />
2590030 | //<br />
2590031 | fp_new = fopen (path, mode);<br />
2590032 | //<br />
2590033 | if (fp_new == NULL)<br />
2590034 | {<br />
2590035 | return (NULL);<br />
2590036 | }<br />
2590037 | //<br />
2590038 | if (fp_new != fp)<br />
2590039 | {<br />
2590040 | fclose (fp_new);<br />
2590041 | return (NULL);<br />
2590042 | }<br />
2590043 | //<br />
2590044 | return (fp_new);<br />
2590045 |}<br />
105.9.20 lib/stdio/fsetpos.c<br />
Si veda la sezione 98.32.<br />
2630001 |#include <br />
2630002 |//----------------------------------------------------------------------<br />
2630003 |int<br />
2630004 |fsetpos (FILE *restrict fp, fpos_t *restrict pos)<br />
2630005 |{<br />
2630006 | long int position;<br />
2630007 | //<br />
2630008 | if (fp != NULL)<br />
2630009 | {<br />
2630010 | position = fseek (fp, (long int) *pos, SEEK_SET);<br />
2630011 | if (position >= 0)<br />
2630012 | {<br />
2630013 | *pos = position;<br />
2630014 | return (0);<br />
2630015 | }<br />
2630016 | }<br />
2630017 | return (-1);<br />
2630018 |}<br />
105.9.21 lib/stdio/ftell.c<br />
Si veda la sezione 98.46.<br />
2640001 |#include <br />
2640002 |#include <br />
2640003 |//----------------------------------------------------------------------<br />
2640004 |long int<br />
2640005 |ftell (FILE *fp)<br />
2640006 |{<br />
2640007 | return ((long int) lseek (fp->fdn, (off_t) 0, SEEK_CUR));<br />
2640008 |}<br />
105.9.22 lib/stdio/ftello.c<br />
Si veda la sezione 98.46.<br />
2650001 |#include <br />
2650002 |#include <br />
2650003 |//----------------------------------------------------------------------<br />
2650004 |off_t<br />
2650005 |ftello (FILE *fp)<br />
2650006 |{<br />
2650007 | return (lseek (fp->fdn, (off_t) 0, SEEK_CUR));<br />
2650008 |}<br />
«<br />
«<br />
«<br />
«<br />
«<br />
105.9.17 lib/stdio/fscanf.c<br />
Si veda la sezione 98.90.<br />
2600001 |#include <br />
2600002 |//----------------------------------------------------------------------<br />
2600003 |int<br />
2600004 |fscanf (FILE *restrict fp, const char *restrict format, ...)<br />
2600005 |{<br />
2600006 | va_list ap;<br />
2600007 | va_start (ap, format);<br />
2600008 | return vfscanf (fp, format, ap);<br />
2600009 |}<br />
105.9.18 lib/stdio/fseek.c<br />
Si veda la sezione 98.43.<br />
2610001 |#include <br />
2610002 |#include <br />
2610003 |//----------------------------------------------------------------------<br />
2610004 |int<br />
2610005 |fseek (FILE *fp, long int offset, int whence)<br />
2610006 |{<br />
2610007 | off_t off_new;<br />
2610008 | off_new = lseek (fp->fdn, (off_t) offset, whence);<br />
2610009 | if (off_new < 0)<br />
2610010 | {<br />
2610011 | fp->error = 1;<br />
2610012 | return (-1);<br />
2610013 | }<br />
2610014 | else<br />
2610015 | {<br />
2610016 | fp->eof = 0;<br />
2610017 | return (0);<br />
105.9.23 lib/stdio/fwrite.c<br />
Si veda la sezione 98.48.<br />
2660001 |#include <br />
2660002 |#include <br />
2660003 |//----------------------------------------------------------------------<br />
2660004 |size_t<br />
2660005 |fwrite (const void *restrict buffer, size_t size, size_t nmemb,<br />
2660006 | FILE *restrict fp)<br />
2660007 |{<br />
2660008 | ssize_t size_written;<br />
2660009 | size_written = write (fp->fdn, buffer, (size_t) (size * nmemb));<br />
2660010 | if (size_written < 0)<br />
2660011 | {<br />
2660012 | fp->error = 1;<br />
2660013 | return ((size_t) 0);<br />
2660014 | }<br />
2660015 | else<br />
2660016 | {<br />
2660017 | return ((size_t) (size_written / size));<br />
2660018 | }<br />
2660019 |}<br />
105.9.24 lib/stdio/getchar.c<br />
Si veda la sezione 98.31.<br />
2670001 |#include <br />
2670002 |#include <br />
2670003 |#include <br />
2670004 |//----------------------------------------------------------------------<br />
2670005 |int<br />
2670006 |getchar (void)<br />
«<br />
«