Several header files and library functions commonly used in the C language

  • 2020-05-30 20:35:02
  • OfStack

Incomplete statistics, C language there are as many as 15 in the standard library header files, so I mainly introduce the commonly used the four header files stdio. h, string. h, math. h, stdlib. h, after used the other to do added. The following dry goods:

1. < stdio.h > : defines input/output functions, types, and macros. Functions make up almost a third of the standard library.

(1) file access.


FILE *fopen (" filename "," mode ") : 

Open the file with the address 'filename' in mode mode and return the file pointer.

Access mode is mainly "r" : read only; "w" : write only and delete existing content; "a" : append, append at the end;

"r+", "w+" : reading and writing; "a+" is appended, and "b" is added at the end above: base 2 file operation.

Note: where r is an open file, w is created (if the file does not exist); w overrides the original, and a appends to the end of the original file.


int fclose ( FILE *f ) : 

Release the buffer data and close the stream.

Here are two that I haven't used much:


FILE *freopen (" filename "," mode ", FILE * f ) : 

Open the file with the address 'filename' in mode mode and associate it with the stream f2.


int fflush ( FILE *f ) : 

Writes to a file all data that has been written to a buffer but not to a file.

(2) base 2 input/output


fread ( *ptr . size . n . FILE* f ) : 

Read n objects of length size from f and put them into an array that ptr points to.


fwrite ( *ptr . size . n . FILE* f ) : 

Read n objects of length size from the ptr pointing array and write them to f.

Note: be aware of the write and read objects. Both reads and writes are for the f file stream.

(3) unformatted input/output


int fgetc/getc ( FILE *f ) : 

Returns the next character of the stream f, reaches the end of the file/error, returns EOF.


int fputc/putc ( int c .  FILE *f ) 

Enter the character c into the stream f.


int fgets ( char * s . int n . FILE *f ) : 

Read the next n-1 character in f into the array s. When a newline character is encountered, it terminates.


int fputs ( const char * s . FILE *f ) : 

Output the string s to the stream.


int fclose ( FILE *f ) : 
0

Write c back into f.

(4) format input/output

Output in 1 format.


scanf/fscanf/sscanf
printf/fprintf/sprintf

Note: without f/s, it is the format string standard input/output function, input/output to terminal/screen; printf (const char *format...)

Add s, input/output to the string. sprintf (char *s, const char *format,...)

Add f, input/output to file stream. fprintf (FILE *f, const char *format,...)

(5) file location


long ftell ( FILE *f ) : 

Returns the current pointer position. Return -1L on error.


int fclose ( FILE *f ) : 
3

Set the current stream f pointer position to offset characters after origin. origin: SEEK_SET: file start location; SEEK_CUR pointer current location, SEEK_END: end of file location.


int fclose ( FILE *f ) : 
4

Pointer returns the starting position of the file, equivalent to: fseek (f, 0L, SEEK_SET)

Not commonly used:


int fclose ( FILE *f ) : 
5

Record the current position of the pointer to *p for use by the fsetpos function.


int fclose ( FILE *f ) : 
6

The pointer position points to *p.

(6) error handling and file operation


int feof ( FILE *f ) 

Indicates the end of the file, with 1 returning 0 and a non-0 value at the end.


int ferror ( FILE *f ) 

If the error indicator associated with f is set, a non-zero value is returned.


int fclose ( FILE *f ) : 
9

Deletes the file at the specified location.


int rename ( const char *oldname . const char *newname ) 

Change the file name, otherwise return a non-zero value.


FILE *tmpfile ( void ) 

Create a temporary file in 'wb+' mode and delete it automatically when it is closed or the program ends normally

2. < string.h > Divide into two groups, group 1 begins with str and group 1 begins with mem < memory.h > Not all compilers have them.)

(1) str


char * strcpy (char *dest, const char *src);

Copy the string src to the string dest (including '\0') and return dest


char * strncpy (char *dest, const char *src . n);

Copy the former n characters from src into dest, return dest, and '\0' will be added if there are not enough n characters.


char * strcat (char *dest, const char *src);
char * strncat (char *dest, const char *src . n);

After connecting src to dest; The first n characters in src are connected to dest.


int  strcmp (const char *s1, const char *s2);
int  strncmp (const char *s1, const char *s2 . n);  To compare s1 with s2 . s1<s2 Returns a negative number, otherwise 0 ; Compare the former n A character 
char * strchr (const char *s, int c);
char * strrchr (const char *s, int c);  Return string s In the first 1 Secondary occurrence character c Position pointer; Return string s In the last 1 Secondary occurrence character c Position pointer ( c Will be converted into a char ) 

size_t strcspn (const char *s1, const char *s2); char * strdup (const char *s); char * strerror (int errnum);

(2) mem


void *memcpy ( void *s .  const void *ct . n ) 

Copy the first n characters from the string ct into s and return s.


void *memmove ( s . ct . n The above) 1 Function, but it still executes correctly when the objects overlap. 
void *memset ( void *s . int c .  n ) 

Replace the first n characters in s with c and return s.


int memcmp ( cs . ct . n ) 

n characters before cs are compared with ct, cs < ct, returns a negative number; Otherwise return 0


void *memchr ( cs . c . n ) 

Returns a pointer to the first occurrence of c in cs.

3. < math.h > 1 some mathematical functions

Beg absolute value


int abs  (int x);
long labs (long x);
float fabs  ( float x ) : 

All return values are double, the Angle of the three-angle function is expressed in radians, x, y are all double


double acos (x);
double asin (x) ; 
double atan (x);
double atan2 (y, x) :   arctan ( y/x ) 
double tan  (x);
double tanh (x) :      Hyperbolic tangent 
double sin  (x);
double sinh (x);
double cos  (x);
double cosh (x);
double pow  (x, y) ; // Note that the return value is of type double precision 
double sqrt (x);
double ceil (x) :     Not less than x The minimum integer number of (round up) 
double floor (x) :    No greater than x Of the maximum integer type (rounded down) 
double exp  (x);
double fabs (x);
double log  (x) :      ln ( x ) 
double log10 (x);
double fmod (x, y) :     x/y The remainder of 
double ldexp (x, n) :          x*2^n
double modf (x, double *ip):    will x Divide into integer and decimal parts, return the decimal part, and put the integer part *ip In the 
double frexp (x, int *exp);     will x Divided into ( 0.5,1 ) between the 1 The sum of real fractions 1 a 2 Omega to the power of omega, which returns the true fraction, omega to the power of omega exp In the 

4. < stdlib.h > Numerical conversion, memory allocation and so on.


int rand ( void ) 

Produces a random integer between 0 and 32767.

Pointer name = (data type *) calloc (n, size)

Allocate n contiguous Spaces of length size and set all elements to zero to return the first address.

Pointer name = (data type *) malloc (n*size)

Allocate n*size bytes of memory and return the first address.

Pointer name p1= (data type *) realloc (pointer name p2 to change memory size, new size n)

Allocate the space with the length of n bytes, assign the value of p2 to this memory, and return the first address to p1. (change the memory size of p1 to the address)


void free ( *p ) 

Free the memory pointed by p (p is the memory allocated by malloc, realloc, calloc)


void abort  ( void ) 

Cause the program to terminate abnormally.


void exit ( int status ) 

Cause the program to terminate normally.

conclusion


Related articles: