写点什么

Linux 高级编程常用的系统调用函数汇总

发布于: 2020 年 11 月 05 日
Linux高级编程常用的系统调用函数汇总

1. 文件操作:


库函数访问(缓冲区操作):

1.1:fopen(打开文件):


原型: FILE * fopen(const char * path,const char * mode); 头文件: #include<stdio.h> 参数: path:带路径的文件名 mode打开方式: r: 只读 文件必须存在 r+: 可读可写 不会新建文件,文件必须存在 w: 只写 如果文件不存在,新建文件 w+: 可读可写 如果文件不存在,新建文件 a: 追加 a+: 可读可写 返回值: 文件指针
复制代码


1.2:fclose(关闭文件):

fclose()函数可以把缓冲区内最后剩余的数据输出到磁盘文件,释放文件指针和有关的缓冲区。运行程序后输入数据正常关闭会写入到文件,如果程序意外关闭,没有调用fclose,文件数据丢失。
复制代码


1.3:单个字符的读写:

单个字符读写	输入输出是相对于内存来说的:	getchar();		键盘获取	putchar();		输出显示	fputc();:输出字符		内存	fgetc();:获取字符	feof(fp);		判断文件指针是否到文件尾部,没有返回0 到达返回1
复制代码

字符串读写:

1.4:fgets(读取字符串):


功能: 从stream 所指的文件内读入字符并存到参数s 所指的内存空间, 直到出现换行字符、读到文件尾或是已读了size-1 个字符为止, 最后会加上NULL 作为字符串结束 原型: char * fgets(char * s, int size, FILE * stream); 头文件:#include<stdio.h> 参数: s保存读取到的字符 size要读取的字符的个数 stream为文件流指针 返回值: 取成功,返回读取到的字符串,即string;失败或读到文件结尾返回NULL
复制代码

1.5:fputs:(可以输出任意文件):

fputs:	可以输出任何文件补充学习:gets   puts
复制代码


块读写操作:

1.6:fread(块读),fwrite(块写):

函数原型:		fread:			size_t  fread(void  *buffer,size_t  size, size_t  count,FILE   *fp)		fwrite:			size_t  fwrite(void  *buffer,size_t  size, size_t  count,FILE   *fp)	返回值		成功,返回读/写的块数;出错或文件尾,返回0	说明		typedef   unsigned   size_t;	参数		buffer:  指向要输入/输出数据块的首地址的指针		size:    每个要读/写的数据块的大小(字节数)		count:   要读/写的数据块的个数		fp:      要读/写的文件指针
复制代码

1.7:格式化读写: fscanf,fprintf:

格式化读写	fscanf:		fscanf可以扫描任何文件,不仅仅是键盘,scanf是fscanf	fprintf:		可以输出到任何文件
复制代码

1.8:文件指针定位函数:rewind,fseek,ftell:


rewind: 将读写指针定位到文件开始位置,无返回值 fseek: 将读写指针定位到指定位置 fp:要操作的文件 offset:偏移量(可正可负) whence:参考位置 SEEK_SET //文件开始 SEEK_CUR //文件当前位置 SEEK_END //文件尾 ftell 返回当前文件读写指针的位置,常用来求文件的大小
复制代码

1.9: 输出程序错误 perror :

 输出程序错误:	perror("xxx");
复制代码

系统调用(非缓冲区操作):


1.1:open(打开或创建一个文件):

	函数功能:		打开或创建一个文件	函数原型:		int open(const char *pathname, int flags);    int open(const char *pathname, int flags, mode_t mode);		int creat(const char *pathname, mode_t mode);	所属头文件:		 <sys/types.h>     <sys/stat.h>      <fcntl.h>	函数参数:		pathname:文件路径		flag:(动作标志)			O_RDONLY  读        有且只能有一个			O_WRONLY  写        有且只能有一个			O_RDWR    读写      有且只能有一个			O_CREAT   没有就创建 有就访问			O_EXCL    和O_CREAT连用,如果有 返回错误			O_TRUNC   将文件截取为0			O_APPEND  追加		mode(权限):			当第二个参数有O_CREAT,表示创建文件的时候给定文件的权限	返回值:		成功返回文件表示符fd,失败返回-1
复制代码

1.2:close(关闭文件):

	函数功能:		关闭文件	函数原型:		  int close(int fd);	所属头文件:		<unistd.h>	函数参数:		文件描述符fd	返回值		成功返回0,失败返回-1
复制代码

读写函数:

1.3:write(向打开的文件写数据):

	功能:		向打开文件写数据	原型:		ssize_t write(int fd, const void *buf, size_t count);	所属头文件:		<unistd.h>	参数:		fd:打开成功的文件描述符		buf:要写入的数据存放位置		count:写入的数量	返回值:		成功返回写入字节数,失败返回-1
复制代码

1.4:read(从打开的文件中读取数据):

	功能:		从打开的文件中读取数据	原型:		ssize_t read(int fd, void *buf, size_t count);	所属头文件:		 <unistd.h>	参数:		fd:文件描述符		buf:存放数据的缓冲区的首地址		count:读多少字节	返回值:		成功返回读到的字节数,失败返回-1
复制代码

1.5:lseek(指针定位):

	功能:		重新定位文件的读写位置	原型:		off_t lseek(int fildes, off_t offset, int whence);	所属头文件:		<sys/type.h>    <unistd.h>	参数:		fildes:文件指针fd		offset:偏移量  负数向左移动  正数向右移动		whence:相对位置			SEEK_CUR  //当前位置			SEEK_SET  //开始位置			SEEK_END  //末尾位置	返回值:		成功:返回移动之后的文件指针距离文件头的位置  失败:-1
复制代码


发布于: 2020 年 11 月 05 日阅读数: 32
用户头像

是哒宰丫 2020.10.30 加入

嵌入式软件工程师,Linux驱动工程师

评论

发布
暂无评论
Linux高级编程常用的系统调用函数汇总