Linux中基础IO

一、open/read/write/close等文件相关系统调用

  • open、read、write、close等系统函数称为无缓冲I/O(Unbuffered I/O)函数,用户程序在读写文件时既可以调用C标准I/O库函数,也可以直接调用底层的Unbuffered I/O函数.

那么在讨论Linux环境下基础IO函数前,我们先看看之间接触过的C标准I/O库函数

C标准I/O库函数

hello.c写文件:

int main(){
	FILE* fp = fopen("myfile", "w");
	if (!fp){
		printf("fopen error!\n");
	}
	const char *msg = "hello\n";
	int count = 4;
	while (count--){
		fwrite(msg, strlen(msg), 1, fp);
	}
	fclose(fp);
	return 0;
}

hello.c读文件

int main(){
	FILE* fp = fopen("myfile", "r");
	if (!fp){
		printf("fopen error!\n");
	}
	char buf[1024];
	const char *msg = "hello\n";
	while (1){
		ssize_t s = fread(buf, 1, strlen(msg), fp);
		if (s > 0){
			buf[s] = 0;
			printf("%s", buf);
		}
		if (feof(fp)){
			break;
		}

	}
	fclose(fp);
	return 0;
}

C默认会打开三个输入输出流,分别时stdin,stdout,stderr;

仔细观察发现,这三个流的类型都是FILE*,fopen返回值类型,文件指针。

打开文件的方式:

1、“r”以只读方式打开一个文件;

2、“w”以只写方式打开一个文件;

3、“a”打开一个文件追加;

4、“rb”以只读方式打开一个二进制文件;

5、“rw”以只写方式打开一个二进制文件;

6、“ra”打开一个二进制文件追加;

7、"r+"以读写方式打开一个文件;

8、“w+”以读写方式建立一个文件;

9、“a+”以读写方式打开一个文件追加;

10、“rb+”以读写方式打开一个二进制文件;

11、“wb+”以读写方式建立一个二进制文件;

12、“ab+”以读写方式打开一个二进制文件追加。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值