24.01.2014 Views

Codice

Codice

Codice

SHOW MORE
SHOW LESS

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

«

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

Saved successfully!

Ooh no, something went wrong!