实现的dup2( )函数的源码怎么写
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章将为大家详细讲解有关实现的dup2( )函数的源码怎么写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。原 dup2()函数:#include
千家信息网最后更新 2025年01月20日实现的dup2( )函数的源码怎么写
这篇文章将为大家详细讲解有关实现的dup2( )函数的源码怎么写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
原 dup2()函数:
#includeint dup2( int fd, int fd2 );
对于 dup2,可以用 fd2 参数指定新描述符的值。如果 fd2 已经打开,则先将其关闭。如若 fd 等于 fd2,则 dup2 返回 fd2,而不关闭它。否则,fd2 的 FD_CLOEXEC 文件描述符标志就被清除,这样 fd2 在进程调用 exec 时是打开状态。该函数返回的新文件描述符与参数 fd 共享同一个文件表项。
下面是自己实现的 dup2函数:
#include#include #include #include #include #include #include #include //检查文件描述符是否有效int isFileDescriptor( int fd ){ struct stat st; if( (-1 == fstat(fd,&st)) && (EBADF == errno) ) return -1; return 0;}int my_dup2( int oldfd, int newfd ){ int tempfd; int fd_count; int fdarray[newfd]; int res; if( -1 == isFileDescriptor( oldfd ) ) { printf("the file descriptor is invalid.\n"); return -1; } //如果newfd等于oldfd,则直接返回newfd,而不关闭它 if( oldfd == newfd ) return newfd; //否则,关闭newfd if( 0 == isFileDescriptor( newfd ) ) { res = close( newfd ); if( -1 == res ) { perror("close file descriptor failed"); return -1; } } //复制文件描述符 for( fd_count=0; fd_count 程序运行结果:
[zhang@localhost APUE]$ ./my_dup2
write to testfd 5 successfully
read from initial fd 3 is: Hey man!测试通过。
关于实现的dup2( )函数的源码怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文件
函数
源码
内容
参数
数据
文章
更多
知识
篇文章
测试
不错
有效
代码
标志
状态
程序
结果
质量
进程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全常识10条
我的世界top服务器
国家网络安全周图解
哪个大学软件开发设计就业
360云盘能否安装数据库
如何修改数据库的文件
电信光纤玩联通服务器卡不卡
广东帮啦跑腿网络技术有限公司
电脑服务器断开联接法
小学生网络安全小口诀15个字
服务器A1 F1内存
软件开发环境指的是什么
软件开发需要下载什么条件
软件开发企业内部组织架构
江苏正规软件开发质量保障
公共网络安全性质
网络安全技术身份验证与鉴别
软件开发本科和硕士薪资
江西蓝朵软件开发有限公司
软件开发 全是复制粘贴
天融信网络安全培训班
电信光纤玩联通服务器卡不卡
网络安全工程师和黑客的异同
数据库调用环境测试
商用服务器怎么安装
cjfd数据库入口
药品广告数据库时长5秒粤视
贵阳软件开发公司招聘
网络技术专业测试
葫芦娃手游服务器