Ignore:
Timestamp:
May 27, 2015, 8:33:19 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
00cc023
Parents:
52ac3b4
Message:

licencing: eighth groups of files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/examples/fstream.c

    r52ac3b4 r86bd7c1f  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// fstream.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:12:33 2015
     13// Update Count     : 2
     14//
     15
    116#include "fstream.h"
    217
     
    722
    823struct ofstream {
    9     FILE *file;
    10     int fail;
     24        FILE *file;
     25        int fail;
    1126};
    1227
    1328ofstream *write( ofstream *os, const char *data, streamsize_type size ) {
    14     if ( ! os->fail ) {
    15         fwrite( data, size, 1, os->file );
    16         os->fail = ferror( os->file );
    17     }
    18     return os;
     29        if ( ! os->fail ) {
     30                fwrite( data, size, 1, os->file );
     31                os->fail = ferror( os->file );
     32        }
     33        return os;
    1934}
    2035
    2136int fail( ofstream *os ) {
    22     return os->fail;
     37        return os->fail;
    2338}
    2439
    2540static ofstream *make_ofstream() {
    26     ofstream *new_stream = malloc( sizeof( ofstream ) );
    27     new_stream->fail = 0;
    28     return new_stream;
     41        ofstream *new_stream = malloc( sizeof( ofstream ) );
     42        new_stream->fail = 0;
     43        return new_stream;
    2944}
    3045
    3146ofstream *ofstream_stdout() {
    32     ofstream *stdout_stream = make_ofstream();
    33     stdout_stream->file = stdout;
    34     return stdout_stream;
     47        ofstream *stdout_stream = make_ofstream();
     48        stdout_stream->file = stdout;
     49        return stdout_stream;
    3550}
    3651
    3752ofstream *ofstream_stderr() {
    38     ofstream *stderr_stream = make_ofstream();
    39     stderr_stream->file = stderr;
    40     return stderr_stream;
     53        ofstream *stderr_stream = make_ofstream();
     54        stderr_stream->file = stderr;
     55        return stderr_stream;
    4156}
    4257
    4358ofstream *ofstream_fromfile( const char *name ) {
    44     ofstream *file_stream = make_ofstream();
    45     file_stream->file = fopen( name, "w" );
    46     file_stream->fail = file_stream->file == 0;
    47     return file_stream;
     59        ofstream *file_stream = make_ofstream();
     60        file_stream->file = fopen( name, "w" );
     61        file_stream->fail = file_stream->file == 0;
     62        return file_stream;
    4863}
    4964
    5065void ofstream_close( ofstream *os ) {
    51     if ( os->file != stdout && os->file != stderr ) {
    52         os->fail = fclose( os->file );
    53     }
    54     free( os );
     66        if ( os->file != stdout && os->file != stderr ) {
     67                os->fail = fclose( os->file );
     68        }
     69        free( os );
    5570}
    5671
    5772struct ifstream {
    58     FILE *file;
    59     int fail;
    60     int eof;
     73        FILE *file;
     74        int fail;
     75        int eof;
    6176};
    6277
    6378ifstream *read( ifstream *is, char *data, streamsize_type size ) {
    64     if ( ! is->fail && ! is->eof ) {
    65         fread( data, size, 1, is->file );
    66         is->fail = ferror( is->file );
    67         is->eof = feof( is->file );
    68     }
    69     return is;
     79        if ( ! is->fail && ! is->eof ) {
     80                fread( data, size, 1, is->file );
     81                is->fail = ferror( is->file );
     82                is->eof = feof( is->file );
     83        }
     84        return is;
    7085}
    7186 
    7287ifstream *unread( ifstream *is, char c ) {
    73     if ( ! is->fail ) {
    74         if ( ! EOF == ungetc( c, is->file ) ) {
    75             is->fail = 1;
     88        if ( ! is->fail ) {
     89                if ( ! EOF == ungetc( c, is->file ) ) {
     90                        is->fail = 1;
     91                }
    7692        }
    77     }
    78     return is;
     93        return is;
    7994}
    8095
    8196int fail( ifstream *is ) {
    82     return is->fail;
     97        return is->fail;
    8398}
    8499
    85100int eof( ifstream *is ) {
    86     return is->eof;
     101        return is->eof;
    87102}
    88103
    89104static ifstream *make_ifstream() {
    90     ifstream *new_stream = malloc( sizeof( ifstream ) );
    91     new_stream->fail = 0;
    92     new_stream->eof = 0;
    93     return new_stream;
     105        ifstream *new_stream = malloc( sizeof( ifstream ) );
     106        new_stream->fail = 0;
     107        new_stream->eof = 0;
     108        return new_stream;
    94109}
    95110
    96111ifstream *ifstream_stdin() {
    97     ifstream *stdin_stream = make_ifstream();
    98     stdin_stream->file = stdin;
    99     return stdin_stream;
     112        ifstream *stdin_stream = make_ifstream();
     113        stdin_stream->file = stdin;
     114        return stdin_stream;
    100115}
    101116
    102117ifstream *ifstream_fromfile( const char *name ) {
    103     ifstream *file_stream = make_ifstream();
    104     file_stream->file = fopen( name, "r" );
    105     file_stream->fail = file_stream->file == 0;
    106     return file_stream;
     118        ifstream *file_stream = make_ifstream();
     119        file_stream->file = fopen( name, "r" );
     120        file_stream->fail = file_stream->file == 0;
     121        return file_stream;
    107122}
     123
     124// Local Variables: //
     125// tab-width: 4 //
     126// compile-command: "cfa fstream.c" //
     127// End: //
Note: See TracChangeset for help on using the changeset viewer.