您的位置:首页 > 文旅 > 美景 > 阿里巴巴1688网官网_为什么平面设计最后都转行了_百度推广的价格表_网络营销未来有哪些发展趋势

阿里巴巴1688网官网_为什么平面设计最后都转行了_百度推广的价格表_网络营销未来有哪些发展趋势

2025/2/26 4:37:50 来源:https://blog.csdn.net/qq_42279379/article/details/142794510  浏览:    关键词:阿里巴巴1688网官网_为什么平面设计最后都转行了_百度推广的价格表_网络营销未来有哪些发展趋势
阿里巴巴1688网官网_为什么平面设计最后都转行了_百度推广的价格表_网络营销未来有哪些发展趋势

文件描述符的复制与重定向

  • 文件描述符的复制和重定向
    • (1)概述
    • (2)dup
    • (2)dup2
    • (3)fcntl

文件描述符的复制和重定向

(1)概述

文件描述符的复制

创建一个新的文件描述符,该文件描述符指向旧文件描述符所指向的文件

文件描述符的重定向

对已有的文件描述符所指向的文件进行”重新绑定"

(2)dup

该函数用于对文件描述符的复制,复制得到的文件描述符和原文件描述符同指向一个文件(或设备)

#include <unistd.h>
int fdNew = dup(fdOld);
  • fdOld:被复制的文件描述符
  • return:调用成功则返回的文件描述符;-1表示复制失败

注意:fdNew是新创建出来的文件描述符,这是区别于文件描述符重定向的主要矛盾

(2)dup2

该函数可以实现文件描述符的复制,也可以实现文件描述符的创建

#include <unistd.h>
int dup2(int fd_old, int fd_new);
  • fd_old:被复制文件描述符或重定向的目标文件描述符
  • fd_new:同样接管fd_old所指向的文件的文件描述符,当fd_new没有接管文件时,该函数用于复制文件描述符;当fd_new已经接管了某一个文件时,该函数用于重定向文件描述符
  • return:成功则返回新的文件描述符,失败返回-1

(3)fcntl

该函数可以实现多种功能:文件描述符的复制、获取文件属性、设置文件属性等

#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd, ...);
  • fd:要操作的文件描述符
  • cmd:功能参数(F_DUPFD:复制一个已经存在的文件描述符);(F_GETFL:获取文件的状态);(F_SETFL:设置文件的状态)
  • return:F_DUPFD则返回复制出来的文件描述符;F_GETFL则返回文件的属性信息;F_SETFL对应返回非负数则成功,负数表示失败

举例:设置文件的状态标志

// 得到文件的flag属性
int iFlag = fcntl(fd, F_GETFL);
// 添加新的flag 标志
iFlag = iFlag | O_APPEND;
// 将更新后的falg设置给文件
fcntl(fd, F_SETFL, iFlag );

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com