Common Linux C functions-File Content operations

Source: Internet
Author: User
Tags rewind
Common Linux C functions-File Content operations-general Linux technology-Linux programming and kernel information. For more information, see the following. Clearerr (error flag for clearing file streams)
Feof

Header file # include

Define the void clearerr (FILE * stream) function );

Function Description clearerr () clears the error flag used by the file stream specified by the stream parameter.

Return Value

 
Fclose (close file)
Related functions close, fflush, fopen, setbuf

Header file # include

Defines the function int fclose (FILE * stream );

Function Description: fclose () is used to close files opened by fopen. This action writes data in the buffer zone to a file and releases the file resources provided by the system.

If the object is successfully closed, 0 is returned. If an error occurs, EOF is returned and the error code is saved to errno.

The error code EBADF indicates that the parameter stream is not an open file.

For more information, see fopen ().

 




Fdopen (convert file description to file pointer)
Related functions: fopen, open, and fclose

Header file # include

Define the function FILE * fdopen (int fildes, const char * mode );

Function Description fdopen () converts the file description of fildes to the corresponding file pointer and returns the result. The mode string represents the stream format of the file pointer, which must be the same as the read/write mode of the original file description. For more information about the mode string format, see fopen ().

If the return value is converted successfully, the file pointer pointing to the stream is returned. If the Error Code fails, NULL is returned, and the error code is stored in errno.

Example # include
Main ()
{
FILE * fp = fdopen (0, "w + ");
Fprintf (fp, "% s \ n", "hello !");
Fclose (fp );
}

Execute hello!

 

Feof (check whether the file stream has read the end Of the file)
Related functions: fopen, fgetc, fgets, and fread

Header file # include

Defines the int feof (FILE * stream) function );

Function Description: feof () is used to detect whether the end of the file is read. The ending number stream is the object pointer returned by fopen. If the end of the file is reached, a non-zero value is returned. Otherwise, 0 is returned.

The return value is a non-zero value, indicating that the object has reached the end of the object.

 

Fflush (update buffer)
Related functions: write, fopen, fclose, and setbuf

Header file # include

Defines the function int fflush (FILE * stream );

Function Description fflush () forces data in the buffer to be written back to the file specified by the parameter stream. If the parameter stream is NULL, fflush () updates all open file data.

If the return value is successful, 0 is returned. If the return value is failed, EOF is returned. The error code is stored in errno.

The file specified by the error code "stream" is not opened, or the file is in read-only status. For other error codes, see write ().

 

Fgetc (one character read from the file)
Related functions: open, fread, fscanf, getc

Header file include

Define the function nt fgetc (FILE * stream );

Function Description: fgetc () reads a character from the file indicated by the stream parameter. If you read the end Of the file without data, the EOF is returned.

If the returned value is getc (), the read characters are returned. If the returned value is EOF, the returned values are at the end of the file.

Example # include
Main ()
{
FILE * fp;
Int c;
Fp = fopen ("exist", "r ");
While (c = fgetc (fp ))! = EOF)
Printf ("% c", c );
Fclose (fp );
}

 

Fgets (read a string from the file)
Related functions: open, fread, fscanf, getc

Header file include

Define the function har * fgets (char * s, int size, FILE * stream );

Function Description: fgets () is used to read characters from the file referred to by the parameter stream to the memory space referred to by the parameter s, until a line break occurs, the end of the file is read, or the size-1 character is read, NULL is added as the string.

If gets () is returned successfully, the s pointer is returned. If NULL is returned, an error occurs.

Example # include
Main ()
{
Char s [80];
Fputs (fgets (s, 80, stdin), stdout );
}

Run this is a test/* input */
This is a test/* output */

 

Fileno (returns the file description used by the file Stream)
Related functions: open and fopen

Header file # include

Defines the int fileno (FILE * stream) function );

Function Description: fileno () is used to obtain the file description used by the file stream specified by the parameter stream.

The Return Value Returns the description of the file.

Example # include
Main ()
{
FILE * fp;
Int fd;
Fp = fopen ("/etc/passwd", "r ");
Fd = fileno (fp );
Printf ("fd = % d \ n", fd );
Fclose (fp );
}

Execute fd = 3

 




Fopen (open a file)
Related functions: open and fclose

Header file # include

Define the function FILE * fopen (const char * path, const char * mode );

Function Description: the path string contains the path and file name of the file to be opened. The mode string represents the stream format.
Mode has the following forms of strings:
R: open a read-only file, which must exist.
R + open a readable file, which must exist.
W. Open and write only the file. If the file exists, the file length is 0, indicating that the file content will disappear. If the file does not exist, the file is created.
W + open the readable and writable file. If the file exists, the file length is cleared to zero, that is, the file content disappears. If the file does not exist, the file is created.
A. Open and write-only files as an attachment. If the file does not exist, the file will be created. If the file exists, the written data will be added to the end of the file, that is, the original content of the file will be retained.
A + opens readable and writable files by appending them. If the file does not exist, the file will be created. If the file exists, the written data will be added to the end of the file, that is, the original content of the file will be retained.
The preceding morphological string can be added with a B character, such as a combination of rb, w + B, and AB +. The B character is added to indicate that the file opened by the function library is a binary file, rather than text files. However, this character is ignored in the POSIX System in Linux. The new file created by fopen () has the S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (0666) Permission. For the File Permission, see umask value.

When the returned value file is successfully opened, the file pointer pointing to the stream will be returned. If the file fails to be opened, NULL is returned and the error code is stored in errno.

Note: After opening a file, the file will be read or written. If opening the file fails, the subsequent read/write operations will not be smooth. Therefore, in the fopen () then, make error judgment and handling.

Example # include
Main ()
{
FILE * fp;
Fp = fopen ("noexist", "a + ");
If (fp = NULL) return;
Fclose (fp );
}

 




Fputc (write a specified character to the file Stream)
Related functions: fopen, fwrite, fscanf, putc

Header file # include

Defines the int fputc (int c, FILE * stream) function );

Function Description: fputc converts parameter c to unsigned char and writes it to the file specified by the parameter stream.

If the returned value is fputc (), a successfully written character is returned, that is, the parameter c. If EOF is returned, the write operation fails.

Example # include
Main ()
{
FILE * fp;
Char a [26] = "abcdefghijklmnopqrstuvwxyz ";
Int I;
Fp = fopen ("noexist", "w ");
For (I = 0; I <26; I ++)
Fputc (a, fp );
Fclose (fp );
}

 




Fputs (write a specified string into the file)
Related functions: fopen, fwrite, fscanf, fputc, putc

Header file # include

Defines the int fputs (const char * s, FILE * stream) function );

Function Description fputs () is used to write the string referred to by parameter s to the file referred to by parameter stream.

If the return value is successful, the number of written characters is returned. If the return value is EOF, an error occurs.

For an example, see fgets ().

 




Fread (reads data from a file Stream)
Related functions: fopen, fwrite, fseek, and fscanf

Header file # include

Define the size_t fread function (void * ptr, size_t size, size_t nmemb, FILE * stream );

Function Description fread () is used to read data from a file stream. The stream parameter is an opened file pointer. the ptr parameter points to the data space to be read. The number of characters read is determined by the size * nmemb parameter. Fread () returns the number of nmemb actually read. If this value is smaller than the nmemb parameter, it indicates that the file may be read at the end or an error occurs. In this case, feof () must be used () or ferror () to determine what happens.

The Return Value Returns the number of nmemb actually read.

Additional instructions

Example # include
# Define nmemb 3
Struct test
{
Char name [20];
Int size;
} S [nmemb];
Main ()
{
FILE * stream;
Int I;
Stream = fopen ("/tmp/fwrite", "r ");
Fread (s, sizeof (struct test), nmemb, stream );
Fclose (stream );
For (I = 0; I Printf ("name [% d] = %-20 s: size [% d] = % d \ n", I, s. name, I, s. size );
}

Run name [0] = Linux! Size [0] = 6
Name [1] = FreeBSD! Size [1] = 8
Name [2] = Windows2000 size [2] = 11

 




Freopen (open a file)
Related functions fopen and fclose

Header file # include

Define the function FILE * freopen (const char * path, const char * mode, FILE * stream );

Function Description: the path string contains the path and file name of the file to be opened. For details about the mode parameter, see fopen. The stream parameter is an opened file pointer. Freopen () will close the file stream opened by the original stream, and then open the file with the path parameter.

When the returned value file is successfully opened, the file pointer pointing to the stream will be returned. If the file fails to be opened, NULL is returned and the error code is stored in errno.

Example # include
Main ()
{
FILE * fp;
Fp = fopen ("/etc/passwd", "r ");
Fp = freopen ("/etc/group", "r", fp );
Fclose (fp );
}

 
Fseek (read/write location of a mobile file Stream)
Related functions: rewind, ftell, fgetpos, fsetpos, and lseek

Header file # include

Defines the int fseek (FILE * stream, long offset, int whence) function );

Function Description: fseek () is used to move the read/write location of a file stream. The stream parameter is an opened file pointer, And the offset parameter is the number of read/write locations to be moved Based on the whence parameter.

The whence parameter is one of the following:
The offset displacement from the beginning of the SEEK_SET file is the new read/write location. SEEK_CUR increases the offset displacement at the current read/write position.
SEEK_END points the read/write position to the end of the file and then increases the offset displacement.
When the whence value is SEEK_CUR or SEEK_END, the offset parameter allows negative values.
The following are special usage methods:
1) to move the read/write location to the beginning of the FILE: fseek (FILE * stream, 0, SEEK_SET );
2) to move the read/write location to the end of the FILE: fseek (FILE * stream, 0, 0SEEK_END );

Return Value: if the call is successful, 0 is returned. If an error exists,-1 is returned. errno stores the error code.

Note that fseek () does not return the read/write location like lseek (). Therefore, ftell () must be used to obtain the current read/write location.

Example # include
Main ()
{
FILE * stream;
Long offset;
Fpos_t pos;
Stream = fopen ("/etc/passwd", "r ");
Fseek (stream, 5, SEEK_SET );
Printf ("offset = % d \ n", ftell (stream ));
Rewind (stream );
Fgetpos (stream, & pos );
Printf ("offset = % d \ n", pos );
Pos = 10;
Fsetpos (stream, & pos );
Printf ("offset = % d \ n", ftell (stream ));
Fclose (stream );
}

Execute offset = 5
Offset = 0
Offset = 10

 

Ftell (get the reading location of the file stream)
Related functions: fseek, rewind, fgetpos, and fsetpos

Header file # include

Defines the function long ftell (FILE * stream );

Function Description: ftell () is used to obtain the current read/write location of a file stream. The stream parameter is an opened file pointer.

Return Value: if the call is successful, the current read/write location is returned. If an error occurs,-1 is returned, and errno stores the error code.

Error code: file stream with invalid parameter stream or removable read/write location.

For an example, see fseek ().

 

Fwrite (write data to a file Stream)
Related functions: fopen, fread, fseek, and fscanf

Header file # include

Define the function size_t fwrite (const void * ptr, size_t size, size_t nmemb, FILE * stream );

Function Description: fwrite () is used to write data to a file stream. The stream parameter is an opened file pointer. the ptr parameter points to the data address to be written. The total number of characters written is determined by the parameter size * nmemb. Fwrite () returns the number of nmemb actually written.

The Return Value Returns the number of nmemb actually written.

Example # include
# Define set_s (x, y) {strcoy (s [x]. name, y); s [x]. size = strlen (y );}
# Define nmemb 3
Struct test
{
Char name [20];
Int size;
} S [nmemb];
Main ()
{
FILE * stream;
Set_s (0, "Linux !");
Set_s (1, "FreeBSD !");
Set_s (2, "Windows2000 .");
Stream = fopen ("/tmp/fwrite", "w ");
Fwrite (s, sizeof (struct test), nmemb, stream );
Fclose (stream );
}

For execution instructions, see fread ().

 

Getc (one character read from the file)
Related functions: read, fopen, fread, fgetc

Header file # include

Defines the int getc (FILE * stream) function );

Function Description getc () is used to read a character from the file indicated by the parameter stream. If you read the end Of the file without data, the EOF is returned. Although getc () and fgetc () act the same way, getc () is defined as a macro and is not a real function call.

If the returned value is getc (), the read characters are returned. If the returned value is EOF, the returned values are at the end of the file.

For an example, see fgetc ().

 

Getchar (reads one character from the standard input device)
Related functions: fopen, fread, fscanf, getc

Header file # include

Define the function int getchar (void );

Function Description getchar () is used to read a character from the standard input device. Convert the character from unsigned char to int and return the result.

If the returned value is getchar (), the read characters are returned. If the returned value is EOF, an error occurs.

Additional descriptions getchar () is not a real function, but is defined by the getc (stdin) Macro.

Example # include
Main ()
{
FILE * fp;
Int c, I;
For (I = 0li <5; I ++)
{
C = getchar ();
Putchar (c );
}
}

Run the 1234/* input */
1234/* output */

 
Gets (reads a string from the standard input device)
Related functions: fopen, fread, fscanf, and fgets

Header file # include

Define the function char * gets (char * s );

Function Description: gets () is used to read characters from the standard device to the memory space indicated by parameter s until a line break occurs or the end of the file is read, and then NULL is added as the string.

If gets () is returned successfully, the s pointer is returned. If NULL is returned, an error occurs.

Note: Because gets () cannot know the size of string s, it is easy to cause a buffer overflow security problem because it must end the input only when a newline character or the end of the file is encountered. We recommend that you use fgets () instead.

For more information, see fgets ()

 

Mktemp (generate a unique temporary file name)
Tmpfile

Header file # include

Define the function char * mktemp (char * template );

Function Description mktemp () is used to generate a unique temporary file name. The last six characters in the file name string referred to by the template parameter must be XXXXXX. The generated file name is returned by a string pointer.

When the returned value file is successfully opened, the file pointer pointing to the stream will be returned. If the file fails to be opened, NULL is returned and the error code is stored in errno.

Additional instructions: the file name string referred to by the template parameter must be declared as an array, for example:
Char template [] = "template-XXXXXX ";
Char * template = "template-XXXXXX" is not available ";

Example # include
Main ()
{
Char template [] = "template-XXXXXX ";
Mktemp (template );
Printf ("template = % s \ n", template );
}

 

Putc (write a specified character to the file)
Related functions: fopen, fwrite, fscanf, fputc

Header file # include

Defines the int putc (int c, FILE * stream) function );

Function Description putc () converts parameter c to unsigned char and writes it to the file specified by the parameter stream. Although putc () works the same as fputc (), putc () is defined as a macro and is not a real function call.

The return value putc () will return the successfully written character, that is, the parameter c. If EOF is returned, the write operation fails.

For an example, see fputc ().

 

Putchar (write specified characters to the standard output device)
Related functions: fopen, fwrite, fscanf, fputc

Header file # include

Defines the int putchar (int c) function );

Function Description putchar () is used to write the c character of the parameter to the standard output device.

If putchar () is returned, the output is successful, that is, the parameter c. If EOF is returned, the output fails.

Additional descriptions putchar () is not a real function, but is defined by the putc (c, stdout) Macro.

For more information, see getchar ().

 

Rewind (resetting the file stream's read/write position to start with the file)
Related functions: fseek, ftell, fgetpos, and fsetpos

Header file # include

Define the void rewind (FILE * stream) function );

Function Description: rewind () is used to move the read/write location of the file stream to the beginning of the file. The stream parameter is an opened file pointer. This function is equivalent to calling fseek (stream, 0, SEEK_SET ).

Return Value

For more information, see fseek ()

 

Setbuf (set the buffer of the file Stream)
Related functions: setbuffer, setlinebuf, and setvbuf

Header file # include

Define the void setbuf function (FILE * stream, char * buf );

Function Description: After opening the file stream and reading the content, call setbuf () to set the buffer zone of the file stream. The parameter stream is the specified file stream, and the parameter buf points to the starting address of the custom buffer. If the buf parameter is a NULL pointer, no buffer IO is required. Setbuf () is equivalent to calling: setvbuf (stream, buf, buf? _ IOFBF: _ IONBF, BUFSIZ)

Return Value

 

Setbuffer (set the buffer of the file Stream)
Related functions: setlinebuf, setbuf, and setvbuf

Header file # include

Define the void setbuffer function (FILE * stream, char * buf, size_t size );

Function Description: After opening the file stream and reading the content, call setbuffer () to set the buffer zone of the file stream. The parameter stream is the specified file stream. The parameter buf points to the starting address of the custom buffer. The parameter size is the buffer size.

Return Value

 

Setlinebuf (set the file stream as a linear buffer)
Related functions: setbuffer, setbuf, and setvbuf

Header file # include

Define the void setlinebuf (FILE * stream) function );

Function Description: setlinebuf () is used to set the file stream for non-buffered IO based on the behavior. Call: setvbuf (stream, (char *) NULL, _ IOLBF, 0); see setvbuf ().

Return Value

 
Setvbuf (set the buffer of the file Stream)
Related functions: setbuffer, setlinebuf, and setbuf

Header file # include

Defines the function int setvbuf (FILE * stream, char * buf, int mode, size_t size );

Function Description: After opening the file stream and reading the content, call setvbuf () to set the buffer zone of the file stream. The parameter stream is the specified file stream. The parameter buf points to the starting address of the custom buffer. The parameter size is the buffer size. The parameter mode has the following types:
_ IONBF no buffer IO
_ IOLBF no buffer IO Based on Behavior Change
_ IOFBF has no buffer IO at all. If the buf parameter is a NULL pointer, no buffer IO is required.

Return Value

 
Ungetc (write the specified character back to the file Stream)
Related functions: fputc, getchar, and getc

Header file # include

Defines the int ungetc (int c, FILE * stream) function );

Function Description: ungetc () writes the parameter c back to the file stream specified by the parameter stream. This write-back character is obtained by the next function that reads the file stream.

If the return value is successful, a c character is returned. If an error occurs, an EOF is returned.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.