C语言中内存及文件操作函数用法

参考书目:周兆熊《C程序员从校园到职场》

一、内存操作函数

memset——void *memset(void *dest, int c, size_t count);

函数功能:将已开辟内存空间dest的前count个字节的值设为c。

用       法:除了可用于对指定位置设定值之外,还可以用于内存空间初始化,内存简单复制,清空一个结构类型的变量或数组等。

memcpy——void *memcpy(void *dest, const void *src, size_t count);

函数功能:将首地址为src的前count个字节复制到首地址dest。其中src和dest所指内存区域不能重叠,返回值为dest指针。

用       法:实际开发中,经常memset和memcpy同时使用,先用memset初始化数组或结构体变量,再用memcpy将内容复制到变量中。

二、字符串操作函数

strcat和strncat

char *strncat( char *strDest, const char *strSource, size_t count);将strSource数组中前count个字符拼接到strDest数组后面。一般用strncat防止出现字符串连接大小不匹配导致越界的问题。

strcpy和strncpy

char *strncpy( char *strDest, const char *strSource, size_t count);将strSource数组中前count个字符复制到strDest数组。一般用strncpy防止出现字符串复制大小不匹配导致越界的问题。

strcmpstrncmp

int *strncmp( const char *string1, const char *string2, size_t count);只比较两个数组前count个字符,返回值小于0,则前一个字符串小,等于0则相等,大于0则前一个字符串大。int *strcmp( const char *string1, const char *string2);比较两个数组所有字符,返回值小于0,则前一个字符串小,等于0则相等,大于0则前一个字符串大。

三、文件操作函数

fopen——FILE *fopen( const char *path, const char *mode);

函数功能:path字符串包含欲打开的文件路径及文件名,mode字符串代表流形态,有以下几种:

r:打开只读文件,该文件必须存在。

r+:打开可读写文件,该文件必须存在。

w:打开只写文件,若存在,则长度清0,即删除内容,不存在则建立。

w+:打开可读写文件,若存在,则长度清0,即删除内容,不存在则建立。

a:打开只写文件,若存在,续写,保留原内容,不存在则建立。

a+:打开可读写文件,若存在,续写,保留原内容,不存在则建立。

后加b表示文件为二进制文件。

返回值:文件顺利打开,返回文件指针,文件打开失败,返回NULL,后续使用要进行错误判别。

fclose——int fclose(FILE *stream);

函数功能:关闭文件,与fopen配合使用,使缓冲区数据写入文件,释放系统资源。

返回值:成功返回0,错误返回EOF。

fgetc——int fgetc(FILE *stream);从文件中读取一个字符,成功返回0,错误返回EOF

fgets——char fgets(char *s, int size, FILE *stream);从文件中读入size-1个字符,存入s所指内存空间,遇到换行和文件尾也停止,末尾加NULL作为结束。成功则返回s指针,错误则返回NULL。

fflush实现fclose强制将缓冲区数据写入文件的功能,用法相同。

fputc——int fputc( int c, FILE *stream);将c转为unsigned char后写入文件,成功则返回c,失败返回EOF。

fputs——int fputs( const char *s, FILE *stream);将字符串s写入文件,成功则反户籍字符个数,失败返回EOF。

fread——size_t fread( void *ptr, size_t size, size_t nmemb,FILE *stream);

fwrite——size_t fwrite( const void *ptr, size_t size, size_t nmemb,FILE *stream);

读出或写入数据,ptr为内存不小于size*nmemb的空间,size为元素大小,nmemb为元素个数,stream为文件指针。返回实际

nmemb数目。

ftell——long ftell(FILE *stream);用于得到文件指针当前位置相对于文件头偏移字节数。可用于获取文件大小。

feof——int feof(FILE *stream);用于检测是否读到文件尾,如果未到,返回0,如果到尾部,返回非0。

你可能感兴趣的:(C语言中内存及文件操作函数用法)