Linux标准IO

man手册

man手册
标准man手册分为8个章节:
man 1        用户命令
man 2        系统调用
man 3        c函数库调用
man 4        设备文件和特殊文件
man 5        配置文件和格式
man 6        游戏相关
man 7        杂项,总述
man 8        管理类命令

标准IO

1.fopen

1.fopen
  FILE *fopen(const char *pathname, const char *mode);
参数:
     pathname:
     类型:const char *
     描述:要打开的文件的名称(包括路径)。如果文件名是相对路径,则相对于当前工作目录。如果是绝对路径,则直接按照路径打开。(可以通过主函数传参)
     mode:
     类型:const char *
     描述:打开文件的模式。常用的模式有:
     		"r":以只读模式打开文件(文件必须存在)
     		"r+":以读写模式打开文件(文件必须存在)
     		"w":以只写模式打开文件(如果文件存在,则清空文件内容;如果文件不存在,则创建一个新文件)
     		"w+":以读写模式打开(如果文件存在,则清空文件内容;如果文件不存在,则创建一个新文件)
     		"a":以附加模式打开(文件指针指向文件末尾。如果文件不存在,则会创建一个新文件)
     		"a+":以读写模式打开文件(文件指针指向文件末尾。如果文件不存在,则会创建一个新文件)
返回值:
      成功:返回一个指向 FILE 结构体的指针   通过这个指针可以进行后续的文件操作,如读写文件、关闭文件等
      失败:返回 NULL   可以通过调用 errno 和 perror() 或 strerror() 函数获取错误信息。

2.fclose

2.fclose
int fclose(FILE *stream);
参数:
    stream:
	类型:FILE *
	描述:指向 FILE 结构体的指针,这个指针是先前通过 fopen 或其他文件操作函数(如 freopen)获得的。它代表了要关闭的文件。
返回值:
		成功:
             返回 0。表示文件已成功关闭,所有缓冲区的内容都已被写入文件,文件描述符已被释放。
		失败:
		     返回 EOF(通常是 -1)。表示在关闭文件过程中发生了错误。可以通过 perror() 或 strerror(errno) 函数获取具体的错误信息。

3.fgetc

3.fgtec
int fgetc(FILE *stream);
参数:
     stream:指向 FILE 类型的指针,表示要从中读取字符的文件流。
返回值:
      成功:fgetc 返回读取到的字符(以 int 类型表示)。字符会被转换为其 ASCII 值。
      如果到达文件末尾(EOF),或者发生了读取错误,fgetc 返回 EOF(通常是 -1)。要注意的是,EOF 是一个特殊的常量,用于表示读取失败或文件结束的条件。

4.fputc

4.fputc
int fputc(int character, FILE *stream);
参数:
     character:
               要写入的字符,以 int 类型表示
               虽然是以 int 类型传递,但 fputc 实际上只处理字符的低八位(即 unsigned char),高位部分被忽略
     stream:
             指向 FILE 类型的指针,表示要将字符写入的文件流

返回值:
	  成功:fputc 返回写入的字符(以 unsigned char 类型表示),并且被转换为 int 类型
      失败:fputc 返回 EOF(通常是 -1),并且设置 errno 以指示错误原因

5.fgets

5.fgets
char *fgets(char *s, int size, FILE *stream)
功能:
	  从stream流对象关联的文件中获取size大小字节的文本数据
  并存储到s对应的本地内存(栈区数组,堆区内存)
	  
参数: s    要存储数据的本地内存(栈,堆)

	   size 要获取的数据长度,单位字节。
	   stream 要获取的目标文件流对象,

		可以是stdin ,程序会阻塞等待
		如果是普通文件fp 则指向文件第一行数据
返回值:
		成功 :返回指向有效数据的首地址,一般等于s的地址
		失败 :或者 文件末尾 NULL;

	注意:
	1.fgets能读取一行就读取一行
	2.fgets会读到n个数据,如果n个数据中存在\n字符则立即停止当
	  前的读取操作,如果没有\n,则读取n-1个字符,最后一个存储\0	
	3.fgets每行读取的数据后面都有一个\n,在\n后面存放一个\0
				 12345
		buf[] = '1''2''3''4''5''\n''0'

6.fputs

功能:
	   向流中写入一行字符串	   
参数: s 
		   要写的信息,一般是固定的字符串或者有数据的数组。
	   stream 
		   要写入的目标文件流对象

返回值:成功 返回写入的字符数(即写入的字符串长度)
		失败 -1/返回 EOF(表示文件写入出错)
	
注:
	不写入 '\0' 

puts和fputs的区别:
	1.fputs不会自动增减\n
	2.puts 会多打印\n字符
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值