文件管理(二)

编写代码,完成以下功能:
1.创建新文件,该文件具有用户读写权限。
2.采用dup/dup2/fcntl复制一个新的文件描述符,通过新文件描述符向文件写入“class_name”字符串;
3.通过原有的文件描述符读取文件中的内容,并且打印显示;

由题目可知,我们需要创建一个文件file,然后用dup/dup2/fcntl中的任意一种方式,复制file的文件描述符,通过新的文件描述符将自己的班级名写入file中,最后通过原来的文件描述符读取文件信息。

通过对文件描述符的相关知识的了解,我们知道一个文件描述符只能对应一个文件,而多个文件描述符可以指向同一个文件。

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
	int fd,fd1;
	char *str = "yidongyiban";

	fd = open("file",O_CREAT|O_RDWR);
	if(fd < 0)
	  perror("open");

	fd1 = dup(fd);
	if(fd1 < 0)
	  perror("dup");

	write(fd1,str,strlen(str));
	lseek(fd,0,SEEK_SET);

	char buf[12];
	read(fd,buf,12);
	printf("The buf is:%s\n",buf);

	close(fd);
	close(fd1);

	system("rm -f file");
	return 0;
}

通过dup函数,能够复制原文件的文件描述符,函数返回新的文件描述符。

程序运行结果如下:

实验完成;

猜你喜欢

转载自blog.csdn.net/Wangguang_/article/details/84643003
今日推荐