linuxc 高级编程之文件操作2

26 篇文章 0 订阅
24 篇文章 0 订阅

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

源代码:

#include<string.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
int main()
{
 int t1;
        t1 =open("file",O_RDWR|O_CREAT,00007);
 int t2;
 t2=dup(t1);
 char str[30];
 char name[30]="yunjisuanerban_fengtianbo";
 lseek(t2,0,SEEK_SET);
 write(t2,name,30);
 lseek(t1,0,SEEK_SET);
 read(t1,str,30);
 printf("%s",str);
 close(t1);
 return 0;
}


dup()系统调用:
功能
复制文件描述符
头文件
#include <unistd.h>
函数原型
int dup(int oldfd);
传给该函数一个现有描述符,返回一个新的描述符
新描述符是传给它的描述符的拷贝,即两描述符共享同一数据结构
如果对一个文件描述符执行lseek操作,得到的第一个文件的位置和第二个是一样的
返回值
成功时返回新文件描述符
否则-1

dup2()系统调用
功能
复制文件描述符
头文件
#include <unistd.h>
函数原型
int dup2(int oldfd, int newfd);
允许规定一个有效描述符( oldfd )和目标描述符( newfd )
目标描述符将变成源描述符的复制品,即两个文件描述符指向同一文件,且是源描述符指向的文件
返回值
成功时返回新文件描述符
否则-1

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊飞飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值