当前位置: 首页 > news >正文

c++ execl 执行 重定向

#include <unistd.h>int main() {pid_t childPid = fork(); // 创建子进程if (childPid == 0) {// 子进程// 关闭标准输入、输出和错误流close(STDIN_FILENO);close(STDOUT_FILENO);close(STDERR_FILENO);// 打开要写入的文件int fd = open("output.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);// 设置新的标准输出为指定文件dup2(fd, STDOUT_FILENO);// 执行需要重定向的命令execlp("/bin/ls", "ls", "-la", NULL);// 若上面的execlp调用失败,则会返回-1,可以根据需求处理该情况} else if (childPid > 0) {// 父进程等待子进程完成waitpid(childPid, nullptr, 0);} else {// fork失败时的处理perror("fork");return 1;}return 0;
}

这段代码首先创建了一个子进程,然后在子进程中关闭了标准输入、输出和错误流,接着打开了名为output.txt的文件,并将其作为新的标准输出(stdout)。最后,通过execlp函数执行了"/bin/ls -la"命令,并将结果重定向到output.txt文件中。

http://www.lryc.cn/news/275876.html

相关文章:

  • uni-app中实现元素拖动
  • Java系列-Class.forName和ClassLoader.loadClass的区别
  • 找不到模块 “path“ 或其相对应的类型声明
  • Linux第17步_安装SSH服务
  • C语言—数据类型
  • 静态网页设计——多彩贵州(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)
  • unity PDFRender Curved UI3.3
  • 基于深度学习的停车位关键点检测系统(代码+原理)
  • C#,入门教程(09)——运算符的基础知识
  • 企业出海数据合规:GDPR中的个人数据与非个人数据之区分
  • 如何在Ubuntu搭建Emlog博客站点并发布至公网可随时远程访问管理界面——“cpolar内网穿透”
  • 【金猿CIO展】是石科技CIO侯建业:算力产业赋能,促进数字经济建设
  • TypeScript 类
  • Oracle分区表
  • 【leetcode】力扣算法之旋转图像【难度中等】
  • 【Java集合类篇】HashMap的数据结构是怎样的?
  • Spring 应用合并之路(一):摸石头过河 | 京东云技术团队
  • Android13配置selinux让system应用可读sys,proc,SN号
  • 防勒索病毒攻击的关键措施
  • 代表团坐车 - 华为OD统一考试
  • 运用Jmeter进行登录测试
  • Docker学习与应用(四)-容器数据卷
  • CentOS 7.6下HTTP隧道代理的安全性考虑
  • Mockito+junit5搞定单元测试
  • PostgreSQL获取当天、昨天、本月、上个月、本年、去年的数据
  • XCTF:stage1[WriteUP]
  • STM32CubeMX教程13 ADC - 单通道转换
  • 矩阵的乘法
  • python爬取招聘网站数据
  • 灌区信息化方案(什么是现代化灌区,如何一步到位)