忽忽....习题...拿来做做, 请指点做的哪里不好...请不要指点这个应该或不应该做...这只是习题....
author: selfimpr
blog: http://blog.csdn.net/lgg201
mail: lgg860911@yahoo.com.cn
int ud_dup2(const int ofd, const int nfd) {
//新描述符等于旧描述符,不关闭直接返回
if(ofd == nfd) return ofd;
int pid = getpid();
char *pathname = malloc(sizeof(char) * 128);
sprintf(pathname, "/proc/%d/fd/%d", getpid(), nfd);
//如果新描述符已经被打开,关闭它
if(!access(pathname, F_OK)) close(nfd);
int tmp;
int max = sysconf(_SC_OPEN_MAX);
int fds[max], i = 0;
//如果新描述符值大于最大描述符数, 返回错误
if(max < nfd) return -1;
do {
tmp = dup(ofd);
//dup出错
if(tmp < 0) break;
fds[i ++] = tmp;
} while(tmp < nfd);
//如果拷贝出错,则i不自减,也关闭最后一次复制的描述符, 否则,最后的为新描述符, 不关闭
if(tmp == nfd) i --;
//关闭复制的描述符
while(i-- >= 0) close(fds[i]);
if(tmp != nfd) return -1;
return nfd;
}
分享到:
相关推荐
详细介绍dup2函数用法,一看必懂.。。。
在linux中实现dup以及dup2,用C语言实现,里面有可执行文件,直接运行
基于DUP的可靠数据传输的几个实现方法 ,例如UDT,窗口抖动协议等等。及在应用程序中实现数据的可靠性传输。
C语言dup()函数:复制文件描述词 头文件: #include 定义函数: int dup (int oldfd); 函数说明:dup()用来复制参数oldfd 所指的文件描述词, 并将它返回. 此新的文件描述词和参数oldfd 指的是同一个文件, 共享...
Linux系统编程——文件描述符的复制:dup()和dup2(),相关教程如下: http://blog.csdn.net/tennysonsky/article/details/45870459
dup函数在系统编写程序的用法 及源代码
模仿QQ做的一个聊天小应用,本应用通过C语言开发,功能还是比较全面的,实现了点对点、在线离线查看、隐身、群聊、离线消息查看等等。。。其他功能自己去发现吧。。
现在Dup File Finder可以快速帮你解决重复图片问题。 本程序为单文件,无需安装,完全绿色。 使用时注意:由于是软件自动选择重复文件,目前还不能自动选择指定文件夹,所以在删除前请仔细检查文件路径。
UNIX编程中的dup和dup2说明 UNIX编程中的dup和dup2说明
Dup-Pack:基于CRIS的FPGA装箱方法.pdf
LINUX C函数库API 1.字符测试篇 15 1.1 15 isalnum(测试字符是否为英文或数字) 15 1.2 15 isalpha (测试字符是否为英文字母) 15 1.3 16 isascii(测试字符是否为ASCII 码字符) 16 1.4 17 iscntrl(测试字符是否...
3.推荐喜欢自定义补丁颜色的朋友使用 cnhhkk 制作的 dUP2 的颜色辅助 设置工具 - dUP 2 Color Panel。 主页地址:http://cnhhkk.21windows.cn 镜像地址: http://vip.hanzify.org/tracky/dUP2ColorPanel.rar ...
使用fork、exit和exec系统调用编写多进程程序
经典的补丁工具,破解领域很有名的哦!!!!
3.2. dup和dup2函数 30. 进程 1. 引言 2. 环境变量 3. 进程控制 3.1. fork函数 3.2. exec函数 3.3. wait和waitpid函数 4. 进程间通信 4.1. 管道 4.2. 其它IPC机制 5. 练习:实现简单的Shell 31. Shell脚本 1. Shell...
sys_dup()的代码也许称得上是简单的之一了,但是是这么一个简单的系统调用,却成了linux系统的一个特性:输入/输出重定向。sys_dup()的主要工作是用来“复制”一个打开的文件号,并使两个文件号都指向同一个文件,...
大牛路过别叨叨!专业破解。功能强大。灵活的利用dup/dup2可以给你带来很多强大的功能,花了一些时间总结出上面那么多,不知道自己理解的是否透彻,只能在以后的实践中慢慢探索了。
vb.net dup通信,含打洞技术,很有用,提供给大家学习。
DUP-414中文驱动,希望能有需要的同学