Annotation of coherent/a/usr/man/ALL/fopen, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: fopen()                   STDIO Function                  fopen()
                      4: 
                      5: 
                      6: 
                      7: 
                      8: Open a stream for standard I/O
                      9: 
                     10: #include <stdio.h>
                     11: FFIILLEE *ffooppeenn (_n_a_m_e, _t_y_p_e) cchhaarr *_n_a_m_e, *_t_y_p_e;
                     12: 
                     13: fopen  allocates and  initializes  a FILE  structure, or  stream;
                     14: opens  or creates  the file  name; and returns  a pointer  to the
                     15: structure for  use by other  STDIO routines.  name  refers to the
                     16: file to be opened.  type is a string that consists of one or more
                     17: of the characters ``rwa'', to indicate the mode of the string, as
                     18: follows:
                     19: 
                     20: 
                     21:              rr       Read; error if file not found
                     22:              ww       Write; truncate if found, create if not found
                     23: 
                     24: 
                     25: 
                     26:              aa       Append to end of file; no truncation, create if not found
                     27:              rr+      Read and write; no truncation, error if not found
                     28: 
                     29: 
                     30: 
                     31:              ww+      Write and read; truncate if found, create if not found
                     32:              aa+      Append and read; no truncation, create if not found
                     33: 
                     34: 
                     35: The modes that  contain `a' set the seek pointer  to point at the
                     36: end of the file; all other modes set it to point at the beginning
                     37: of  the  file.   Modes that  contain  `+'  both  read and  write;
                     38: however, a  program must call ffsseeeekk or  rreewwiinndd before it switches
                     39: from reading to writing or vice versa.
                     40: 
                     41: ***** Example *****  This example copies argv[1] to argv[2] using
                     42: STDIO  routines.   It demonstrates  the  functions fopen,  fread,
                     43: fwrite, fclose, and feof.
                     44: 
                     45: 
                     46: #include <stdio.h>
                     47: /* BUFSIZ is defined in stdio.h */
                     48: char buf[BUFSIZ];
                     49: 
                     50: 
                     51: 
                     52: void fatal(message)
                     53: char *message;
                     54: {
                     55:         fprintf(stderr, "copy: %s\n", message);
                     56:         exit(1);
                     57: }
                     58: 
                     59: 
                     60: 
                     61: 
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 
                     67: 
                     68: 
                     69: fopen()                   STDIO Function                  fopen()
                     70: 
                     71: 
                     72: 
                     73: main(argc, argv)
                     74: int argc; char *argv[];
                     75: {
                     76:         register FILE *ifp, *ofp;
                     77:         register unsigned int n;
                     78: 
                     79: 
                     80: 
                     81:         if (argc != 3)
                     82:                 fatal("Usage: copy source destination");
                     83:         if ((ifp = fopen(argv[1], "r")) == NULL)
                     84:                 fatal("cannot open input file");
                     85:         if ((ofp = fopen(argv[2], "w")) == NULL)
                     86:                 fatal("cannot open output file");
                     87: 
                     88: 
                     89: 
                     90:         while ((n = fread(buf, 1, BUFSIZ, ifp)) != 0) {
                     91:                 if (fwrite(buf, 1, n, ofp) != n)
                     92:                         fatal("write error");
                     93:         }
                     94: 
                     95: 
                     96: 
                     97:         if (!feof(ifp))
                     98:                 fatal("read error");
                     99:         if (fclose(ifp) == EOF || fclose(ofp) == EOF)
                    100:                 fatal("cannot close");
                    101:         exit(0);
                    102: }
                    103: 
                    104: 
                    105: ***** See Also *****
                    106: 
                    107: fclose(), fdopen(), freopen(), STDIO
                    108: 
                    109: ***** Diagnostics *****
                    110: 
                    111: fopen returns NULL if it cannot allocate a FILE structure, if the
                    112: type string is  nonsense, or if the call to  open or creat fails.
                    113: Currently, only 20  FILE structures can be allocated per program,
                    114: including stdin, stdout, and stderr.
                    115: 
                    116: ***** Notes *****
                    117: 
                    118: Many operating systems recognize a `b' modifier to the type argu-
                    119: ment; this  indicates that the file  contains binary information,
                    120: and lets  the operating  system handle ``funny  characters'' cor-
                    121: rectly.  COHERENT has  no need of such a modifier,  so if you ap-
                    122: pend `b' to type, it will be ignored.  This modifier, however, is
                    123: recognized by numerous other operating systems, including MS-DOS,
                    124: OS/2, and GEMDOS.  If you expect to port developed code to any of
                    125: these operating systems, files should append the `b' to type.
                    126: 
                    127: 
                    128: 
                    129: 
                    130: COHERENT Lexicon                                           Page 2
                    131: 
                    132: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.