实现的dup2( )函数的源码怎么写
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章将为大家详细讲解有关实现的dup2( )函数的源码怎么写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。原 dup2()函数:#include
千家信息网最后更新 2025年11月11日实现的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安全错误
数据库的锁怎样保障安全
网络安全的比赛有哪些
中国网络技术的发展趋势
附加数据库时报错3313
当前软件开发发展趋势
梦7数据库
数据库出现的问题和解决措施
久久为功培厚网络安全吗
派出所网络安全责任制度
企业服务器搭建教程
网络安全工程师的行业分析
数据库制作个人心得
比特币与软件开发的应用
做软件销售和软件开发
软件开发单元测试内容不包括
纯真ip数据库 格式
计算机网络技术工资为多少
xshell 链接服务器
网络安全手抄报精选 漂亮
临沧精益管理软件开发
手机下载app显示同名数据库
数据库备份的核心是复用吗
统一软件开发详解
数据库具有检查点的恢复技术
奉贤区智能软件开发厂家直销
手机网络安全怎么去做
久久为功培厚网络安全吗
任务管理器服务器主机
做支付软件开发
云浮市网络安全应急指挥中心
对网络安全工作的建议