linux命令-dup linux命令界面切换图形界面( 四 )


if (fd0)
{
printf("open a.txt failed, fd = %d\n", fd);
return -1;
【linux命令-dup linux命令界面切换图形界面】 }
printf("open a.txt success, fd = %d\n", fd);
fflush(stdout);
// 复制标准输出的文件描述符
int nfd = dup(STDOUT_FILENO);
int fileFd = dup2(fd, STDOUT_FILENO);
if (fileFd0)
{
printf("dup2 stdout_fileno failed, fileFd = %d\n", fileFd);
return -1;
}
printf("重定向标准输出到a.txt, fileFd = %d\n", fileFd);
// 将STDOUT_FILENO复制到fd后,fd并没有发生变化 , 依然可以通过它写入到a.txt中
const char *pStr = "write string through fd\n";
write(fd, pStr, strlen(pStr));
fileFd = dup2(nfd, fileFd);
if (fileFd0)
{
printf("dup2 reback stdout_fileno failed\n");
return -1;
}
printf("print back to stdout standard, fileFd = %d\n", fileFd);
// 上面使用dup2的时候,STDOUT_FILENO是存在并打开的,我们来测试下不存在的文件描述符的情况
fileFd = dup2(fd, 20);
if (fileFd0)
{
printf("dup2不存在的文件描述符失败, fileFd = %d\n", fileFd);
}
else
{
printf("dup2不存在的文件描述符成功, fileFd = %d\n", fileFd);
const char *pStr = "write string through fileFd\n";
write(fileFd, pStr, strlen(pStr));
}
close(nfd);
close(fileFd);
return 0;
}
文件指针是关键,标志两个文件描述符是否一致,看文件指针是否一致即可,如果两个或者多个文件描述符指向同一个文件表 , 那么对他们的操作是对同一个文件进行操作
ping出现dup 网易 linux怎么解决linux下查看某个进程的启动命令的方法: 在Linux下 ,  如果需要查看进程的启动时间,常用ps aux命令,但是ps aux命令的缺陷在于只能显示时间到年、日期、或者时间, 无法具体到年月日时分秒 。
linux下C语言编程 , 管道,dup,fork,疑问的是,为什么连用那么多close?必须要close? 代码如下文件描述符0,1,2分别表示标准输入标准输出,标准错误输出, 所以在子进程里close(1)是关闭linux命令-dup了标准输出, 然后用dup(fda[1]);此时未用的最小文件描述符就是1(被关闭);这里关闭fda[0]就是为linux命令-dup了说明在子进程是管道的写端(fda[0],不关闭是可以的为linux命令-dup了保险起见关闭).然后子进程退出会调用系统程序ls,于是当前的文件目录就被发送到管道中.父进程同理, 就是将标准输出作为管道的读端,它读到的是子进程ls后的内容,对文件计数,
linux环境怎么ping外网linux的ping包返回DUP虚拟机上新建的系统ping外网地址时,很容易发生DUP!的情况,这里的虚拟机是workstation,不是esxi 。当ping百度地址115.239.210.26时返回:64 bytes from 115.239.210.26: icmp_seq=1 ttl=57 time=10 ms64 bytes from 115.239.210.26: icmp_seq=1 ttl=56 time=12 ms (DUP!)64 bytes from 115.239.210.26: icmp_seq=2 ttl=56 time=12 ms64 bytes from 115.239.210.26: icmp_seq=2 ttl=56 time=13 ms (DUP!)64 bytes from 115.239.210.26: icmp_seq=3 ttl=57 time=10 ms64 bytes from 115.239.210.26: icmp_seq=3 ttl=56 time=12 ms (DUP!)64 bytes from 115.239.210.26: icmp_seq=4 ttl=56 time=12 ms 64 bytes from 115.239.210.26: icmp_seq=4 ttl=56 time=13 ms (DUP!)(DUP!) 这个东西是DUPLICATE的一个缩写,也就是ping包的时候收到多个重复值回应,通常发生在linux环境下比较多 , windows环境对ping的reply只接到第一个,后续的重复回应会被废弃 。发生这种情况通常是主宿机的IP冲突,或者网关有重复的路由设置,也或者路由器堵塞比较厉害,也可能还有其他原因 。本次的解决办法是更改主机的IP网段 。
linux命令-dup的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于linux命令界面切换图形界面、linux命令-dup的信息别忘了在本站进行查找喔 。

推荐阅读