Linux系统编程--标准IO--fclose、fopen、fgets、fputs函数

标准IO中要学习哪些相关函数呢?
文件IO:open 、close 、lseek 、read、write
标准IO:fopen、 fclose、fseek, rewind、读写函数比较多(分三类,全缓存、行缓存和无缓存)

1*、FILE *fopen (const char *path, const char *mode);
返回值:FILE * 文件流指针 为NULL的时候,表示打开失败。 类似于文件IO 中的文件描述符
FILE 定义:struct _IO_FILE,是结构体。在/usr/include/libio.h 中
包含读写缓存的首地址、大小、位置指针等。
文件IO:进程默认会打开三个文件描述符(0、1、2即 标准输入、标准输出、标准出错)

对应的标准IO:
标准的输入流:stdin 0
标准的输出流:stdout 1
标准的出错流:stderr 2

Mode:权限 相当于文件IO 的 flag
在这里插入图片描述
mode
b:二进制文件
r: 只读方式打开文件,文件必须存在;
w或a:只写方式打开文件,文件不存在则创建;区别: w等价O_TRUNC,a等价O_APPEND;

+:读写方式打开文件
例:以读写方式打开一个文件,该文件必须存在: r+ 以追加方式打开一个文件,若文件不存在,则创建: a或a+

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc,char *argv[])
{

	int fd;
	fd=open(argv[1],O_CREAT|O_RDWR,0777);
	if(fd<0)
	{
		printf("cread %s file fail\n",argv[1]);
		return -1;

	}

	printf("cread %s file suceess,fd=%d\n",argv[1],fd);

	close(fd);
	return 0;
	
} 

运行结果:文件的权限为644
在这里插入图片描述在这里插入图片描述umask 为0022,其实使用fopen 创建的文件的初始权限为666,最终的权限为初始权限减去umask.

  1. int fclose(FILE *stream)
    fclose()调用成功返回0,失败返回EOF,并设置errno
    在该文件被关闭之前,刷新缓存中的数据。如果标准I / O库已经为该流自动分配了一个缓存,则释放此缓存。强制将库缓存中的数据写入内核中。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值