Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Developer Support
QNX Documentation Library
QNX Developer Support

QNX Developer Support

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

[Previous] [Contents] [Index] [Next]

ungetc()

Push a character back onto an input stream

Synopsis:

#include <stdio.h>

int ungetc( int c, 
            FILE *fp );

Arguments:

c
The character that you want to push back.
fp
The stream you want to push the character back on.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The ungetc() function pushes the character specified by c back onto the input stream pointed to by fp. This character will be returned the next time that you read from the stream. The pushed-back character is discarded if you call fflush() or a file-positioning function (fseek(), fsetpos(), or rewind()) before performing the next read operation.

Only one character (the most recent one) of pushback is guaranteed.

The ungetc() function clears the end-of-file indicator, unless the value of c is EOF.

Returns:

The character pushed back.

Examples:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main( void )
  {
    FILE *fp;
    int c;
    long value;

    fp = fopen( "file", "r" );
    value = 0;
    c = fgetc( fp );
    while( isdigit(c) ) {
      value = value*10 + c - '0';
      c = fgetc( fp );
    }
    ungetc( c, fp ); /* put last character back */
    printf( "Value=%ld\n", value );
    fclose( fp );
    return EXIT_SUCCESS;
  }

Classification:

ANSI, POSIX 1003.1

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread Yes

See also:

fopen(), getc(), getc_unlocked(), ungetwc()


[Previous] [Contents] [Index] [Next]