getc_unlocked()

get character from stream (not thread-safe) 

Function


SYNOPSIS

#include <stdio.h>

int getc_unlocked(FILE *stream);


DESCRIPTION

The getc_unlocked() function, which gets a character from a stream, is identical to the getc() function, except that getc_unlocked() is not thread-safe. The getc_unlocked() function obtains the next byte (if present) as an unsigned char converted to an int, from the input stream pointed to by stream, and then advances the associated file position indicator for the stream (if defined).

This function may safely be used in a multi-threaded process only if the invoking thread owns stream, within a scope protected by flockfile() (or ftrylockfile()) and funlockfile().


PARAMETERS

stream 

Points to the input stream.


RETURN VALUES

The getc_unlocked() function returns the next character from the input stream pointed to by stream. If the stream is at the end of the file, the end-of-file indicator for the stream is set and getc_unlocked() returns EOF. If a read error occurs, the error indicator for the stream is set and getc_unlocked() returns EOF. The functions feof() and ferror() can be used to distinguish error conditions from EOF.

On failure, errno is set to one of the following values:

EACCES 

Another process has the file locked.

EBADF 

stream is not a valid stream opened for reading.

EINTR 

A signal interrupted the call.

EIO 

An input error occurred.

EISDIR 

The open object is a directory, rather than a file.

ENOMEM 

Memory could not be allocated for internal buffers.

ENXIO 

A device error occurred.

EWOULDBLOCK 

The underlying file descriptor is a non-blocking socket and no data is ready to be read.


CONFORMANCE

POSIX.1 (1996).


MULTITHREAD SAFETY LEVEL

Unsafe.


PORTING ISSUES

If the stream is from a file opened in text mode, the line-terminating character sequence carriage return plus linefeed is translated to linefeed. No such translation occurs for files opened in binary mode.


AVAILABILITY

PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Professional Developers 64-Bit Edition
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition


SEE ALSO

Functions:
feof(), ferror(), fgetc(), flockfile(), fopen(), ftrylockfile(), funlockfile(), getc(), getchar(), getchar_unlocked(), gets(), getw()


PTC MKS Toolkit 10.2 Documentation Build 28.