Linux系统编程I/O操作(二)

使用open函数打开文件

首先,新建一个文件:

kenneth-X556UJ% touch test
kenneth-X556UJ% ls
test
kenneth-X556UJ% 

创建一个open.c:

kenneth-X556UJ% vi open.c

open.c的内容如下:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
	// 文件描述符
	int fd;				
	// 新创建的test路径
	char *file = "./test";				

	if ((fd = open(file, O_RDONLY)) < 0)
	{
		printf("open %s failed!\n", file);
	}

	printf("filed %s is %d\n", file, fd);

	return 0;
}

编译,执行

kenneth-X556UJ% gcc open.c -o open
kenneth-X556UJ% ./open
filed ./test is 3
kenneth-X556UJ% 

使用open函数创建文件

我们将test文件删除,

kenneth-X556UJ% rm test 
kenneth-X556UJ% ls
open  open.c
kenneth-X556UJ% 

继续执行open

kenneth-X556UJ% ./open
open ./test failed!
filed ./test is -1
kenneth-X556UJ% 

发现打开文件失败,我们修改源代码,是程序可以通过open函数创建文件
修改内容如下:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
	int fd;				// 文件描述符
	char *file = "./test";		// 新创建的test路径

	if ((fd = open(file, O_RDWR | O_CREAT | O_TRUNC, 0777)) < 0)
	{
		printf("open %s failed!\n", file);
	}

	printf("filed %s is %d\n", file, fd);

	return 0;
}

重新编译,并且执行,

kenneth-X556UJ% gcc open.c -o open
kenneth-X556UJ% ./open            
filed ./test is 3
kenneth-X556UJ% ls
open  open.c  test
kenneth-X556UJ% 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值