Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getw(3S) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fclose(3S)

ferror(3S)

fopen(3S)

fread(3S)

fscanf(3S)

ftrylockfile(3S)

flockfile(3S)

gets(3S)

putc(3S)

stdio(3S)

ungetc(3S)






       getc(3S)                                                    getc(3S)


       NAME
             getc, getc_unlocked, getchar, getchar_unlocked, fgetc, getw -
             get character or word from a stream

       SYNOPSIS
             #include <stdio.h>
             int getc(FILE *stream);
             int getc_unlocked(FILE *stream);
             int getchar(void);
             int getchar_unlocked(void);
             int fgetc(FILE *stream);
             int getw(FILE *stream);

       DESCRIPTION
             getc and getc_unlocked return the next character (that is,
             byte) from the named input stream [see intro(3)] as an
             unsigned char converted to an int.  It also moves the file
             pointer, if defined, ahead one character in stream.  getchar
             is defined as getc(stdin).

             getc_unlocked and getchar_unlocked provide unsynchronized
             character I/O that require explicit synchronization around
             their use when multiple threads are performing I/O.  These two
             are defined as macros when cc(1) is invoked with -Kthread.
             getchar_unlocked is defined as getc_unlocked(stdin).  They may
             be used safely in a multi-threaded application if and only if
             they are called while the calling thread has exclusive access
             to stream for getc_unlocked and stdin for getchar_unlocked.
             Exclusive access is granted using the lockfile or ftrylockfile
             functions.

             fgetc behaves like getc, but is a function rather than a
             macro.  fgetc runs more slowly than getc, but it takes less
             space per invocation and its name can be passed as an argument
             to a function.

             getw returns the next word (that is, integer) from the named
             input stream.  getw increments the associated file pointer, if
             defined, to point to the next word.  The size of a word is the
             size of an integer and varies from machine to machine.  getw
             assumes no special alignment in the file.

          Errors
             If the stream is at EOF, the EOF indicator for the stream is
             set and getc and getc_unlocked return EOF.  If a read error
             occurs, the error indicator for the stream is set, getc and


                           Copyright 1994 Novell, Inc.               Page 1













      getc(3S)                                                    getc(3S)


            getc_unlocked return EOF and set errno to identify the error.

            Under the following conditions, the functions getc, getchar,
            fgetc and getw fail and set errno to:

            EAGAIN    if the O_NONBLOCK flag is set for the underlying
                      file descriptor and the process would have blocked
                      in the read operation.

            EBADF     if the underlying file descriptor is not a valid
                      file descriptor open for reading.

            EINTR     if a signal was caught during the getc, getchar,
                      fgetc or getw call, and no data was transferred.

            EIO       if a physical I/O error has occurred, or the process
                      is in a background process group and is attempting
                      to read from its controlling terminal, and either
                      the process is ignoring or blocking the SIGTTIN
                      signal or the process group of the process is
                      orphaned.

      REFERENCES
            fclose(3S), ferror(3S), fopen(3S), fread(3S), fscanf(3S),
            ftrylockfile(3S), flockfile(3S), gets(3S), putc(3S),
            stdio(3S), ungetc(3S)

      NOTICES
            If the integer value returned by all of the above routines
            except getw is stored into a character variable and then
            compared against the integer constant EOF, the comparison may
            never succeed, because sign-extension of a character on
            widening to integer is implementation dependent.

            The macro version of getc evaluates a stream argument more
            than once and may treat side effects incorrectly.  In
            particular, getc(*f++) does not work sensibly.  Use fgetc
            instead.

            Because of possible differences in word length and byte
            ordering, files written using putw are implementation
            dependent, and may not be read using getw on a different
            processor.





                          Copyright 1994 Novell, Inc.               Page 2













       getc(3S)                                                    getc(3S)


             Functions exist for all the above-defined macros.  To get the
             function form, the macro name must be undefined (for example,
             #undef getc).













































                           Copyright 1994 Novell, Inc.               Page 3








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026