问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用dup2重定向了标准输出后,使用什么方法恢复对终端的输出

发布网友 发布时间:2022-04-18 13:40

我来回答

2个回答

热心网友 时间:2022-04-18 15:09

使用p进行输入输出重定向后,文件描述符1和0原来指向键盘和屏幕,后来指向了文件;如果要将0和1恢复指向键盘和屏幕,可以事先使用p2或p用其他文件描述符来指向键盘和屏幕,然后再掉用p2或p恢复过来

热心网友 时间:2022-04-18 16:27

给出一个简单的程序给大家,是我刚刚实验的结果    

#include <stdio.h>;
#include <unistd.h>;
#include <stdlib.h>;
#include <fcntl.h>;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <string.h>;
#include <strings.h>;

int main()
{
        int sfd = p(STDOUT_FILENO), testfd;

        printf("sfd = [%d]\n", sfd);

        testfd = open("./temp",O_CREAT | O_RDWR | O_APPEND);
        if (-1 == testfd)
        {
                printf("open file error.\n");
                exit(1);
        }

        /* 重定向 */
        if (-1 == p2(testfd,STDOUT_FILENO) ) {
                printf("can't redirect fd error\n");
                exit(1);
        }

        /* 此时向stdout写入应该输出到文件 */
        write(STDOUT_FILENO,"file\n",5);

        /* 恢复stdout */
        if (-1 != p2(sfd,STDOUT_FILENO) ) {
                printf("recover fd ok \n");

                /* 恢复后,写入stdout应该向屏幕输出 */
                write(STDOUT_FILENO,"stdout\n",7);
        }

        printf("gogogogogogo!\n");
        close(testfd);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 网上卖化妆品应该怎么定位? 起亚k2汽车空气滤芯4S店专供货是哪里生产的? 老款起亚k2空气滤芯旁边的盖是干啥的 全国二卷*十八洞村为什么答案不是经济与文化相互交融,不是提到了产业吗?求大佬解疑 哪里可以买到老花镜?现配好还是成品好? 老花镜在哪里买比较档次的,要送人的 想在网上买老花镜,不知道哪个网站好 老花镜可以网上随便买吗 安卓版LL盛大版更新哪里有下?更新出错结果卸载到现在哪里也找不到,b站也没了,好不容易找到一个结果 dup2函数的问题 请问各位b站现在在哪里答题呀,版本更新后网上的方法都不行了 如何找回以前的? 如何找回以前的? 自己不小心把自己的删除了,怎么样找回来? 微信重新注册了,怎么找回以前那个? 我的怎么找回? 声纳是怎么发明出来的? 声纳如何三维定位 python dup2重定向和直接赋值重定向有何区别 证券市场中短期*债券的利率是3%,市场平均收益率为9%。某只股票的贝塔系数为1.2求改股票的预期收益率 黄爓排骨怎么做 黄焖排骨的做法 怎样做黄焖排骨最好吃 重庆黄焖排骨做法大全 正宗黄焖排骨做法,美侍郎黄焖排骨怎么做 黄焖排骨的详细教学 怎么快速学会做黄焖排骨? 关于心理健康的一些问题有什么? 关于心理健康咨询的问题 茴香番茄炒鸡蛋的做法,茴香番茄炒鸡蛋怎么做 从网上怎么下小说到手机上? 怎么从网上下载小说书和歌曲 怎么到网上下小说 win10系统笔记本电脑开机登录后,闪屏无法进行任何操作。 谁知道怎么在网上下载小说 齐鲁银行28天净值理财靠谱吗 win10开机闪屏进不了系统 招商银行信用卡的服务怎么样? 招商银行信用卡为什么有上门服务 招商银行信用卡~提高临时额度会收取手续费这样的额外费用么