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

公司网站建设需要收集什么信息功能型网站建设时间

公司网站建设需要收集什么信息,功能型网站建设时间,石家庄建设银行营业网点,飓风算法受影响的网站有哪些ls -l | grep ".txt" 的实现过程涉及无名管道的创建、进程的创建(fork())以及输入输出的重定向(dup2())。以下是详细的实现步骤和代码示例: 实现步骤 创建无名管道: 使用pipe()系统调用创建一个无…

ls -l | grep ".txt" 的实现过程涉及无名管道的创建、进程的创建(fork())以及输入输出的重定向(dup2())。以下是详细的实现步骤和代码示例:


实现步骤

  1. 创建无名管道

    • 使用pipe()系统调用创建一个无名管道,管道会返回两个文件描述符:pipefd[0](读端)和pipefd[1](写端)。

  2. 创建子进程

    • 使用fork()创建子进程。父进程和子进程会共享管道的文件描述符。

  3. 重定向输入输出

    • 在父进程中:

      • 关闭管道的读端(pipefd[0])。

      • 将标准输出(STDOUT_FILENO)重定向到管道的写端(pipefd[1])。

      • 执行ls -l命令,其输出会写入管道。

    • 在子进程中:

      • 关闭管道的写端(pipefd[1])。

      • 将标准输入(STDIN_FILENO)重定向到管道的读端(pipefd[0])。

      • 执行grep ".txt"命令,其输入会从管道读取。

  4. 等待子进程完成

    • 父进程使用wait()等待子进程结束。


代码实现

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>int main() {int pipefd[2]; // 用于存储管道的文件描述符pid_t pid;// 创建无名管道if (pipe(pipefd) == -1) {perror("pipe");exit(EXIT_FAILURE);}// 创建子进程pid = fork();if (pid == -1) {perror("fork");exit(EXIT_FAILURE);}if (pid == 0) { // 子进程:执行 grep ".txt"// 关闭管道的写端close(pipefd[1]);// 将标准输入重定向到管道的读端if (dup2(pipefd[0], STDIN_FILENO) == -1) {perror("dup2");exit(EXIT_FAILURE);}// 关闭管道的读端(已经重定向,不再需要)close(pipefd[0]);// 执行 grep ".txt"execlp("grep", "grep", ".txt", NULL);perror("execlp"); // 如果 execlp 失败exit(EXIT_FAILURE);} else { // 父进程:执行 ls -l// 关闭管道的读端close(pipefd[0]);// 将标准输出重定向到管道的写端if (dup2(pipefd[1], STDOUT_FILENO) == -1) {perror("dup2");exit(EXIT_FAILURE);}// 关闭管道的写端(已经重定向,不再需要)close(pipefd[1]);// 执行 ls -lexeclp("ls", "ls", "-l", NULL);perror("execlp"); // 如果 execlp 失败exit(EXIT_FAILURE);}// 父进程等待子进程结束wait(NULL);return 0;
}
 

代码说明

  1. pipe(pipefd)

    • 创建一个无名管道,pipefd[0]是读端,pipefd[1]是写端。

  2. fork()

    • 创建子进程。父进程和子进程会同时运行,但通过if (pid == 0)区分逻辑。

  3. dup2(pipefd[1], STDOUT_FILENO)

    • 将标准输出重定向到管道的写端,使得ls -l的输出写入管道。

  4. dup2(pipefd[0], STDIN_FILENO)

    • 将标准输入重定向到管道的读端,使得grep ".txt"从管道读取输入。

  5. execlp()

    • 替换当前进程的映像,执行指定的命令(如ls -lgrep ".txt")。

  6. wait(NULL)

    • 父进程等待子进程结束,避免僵尸进程。


运行结果

运行该程序后,会输出当前目录下所有包含.txt的文件列表,效果与直接在终端运行ls -l | grep ".txt"相同。


总结

通过无名管道和进程间通信,我们可以实现类似Shell管道的功能。无名管道的核心在于:

  • 父子进程共享文件描述符。

  • 通过dup2()重定向输入输出。

  • 使用execlp()执行命令。


文章转载自:

http://cS11clJV.ccdyc.cn
http://HsEOGsd5.ccdyc.cn
http://coISN5N4.ccdyc.cn
http://MCCste7u.ccdyc.cn
http://XtMmSpvL.ccdyc.cn
http://QchulUw7.ccdyc.cn
http://o6RkZzNg.ccdyc.cn
http://UScJ2yCD.ccdyc.cn
http://2pPLgAjb.ccdyc.cn
http://vc6WBIL0.ccdyc.cn
http://SMqFybeU.ccdyc.cn
http://AUJthLAu.ccdyc.cn
http://roc4gHyT.ccdyc.cn
http://S1KiIkQH.ccdyc.cn
http://c6KqzBO3.ccdyc.cn
http://4p9fOAyG.ccdyc.cn
http://pThSJxwQ.ccdyc.cn
http://addeNbFc.ccdyc.cn
http://p9POdM9H.ccdyc.cn
http://vgKC6piO.ccdyc.cn
http://35n0GUsN.ccdyc.cn
http://xPtwcUK9.ccdyc.cn
http://w0DC3Z6a.ccdyc.cn
http://jkRQiKii.ccdyc.cn
http://uAstFcrY.ccdyc.cn
http://W7zZlVCl.ccdyc.cn
http://t7zDV59H.ccdyc.cn
http://rDrVex9Z.ccdyc.cn
http://Kdvzu1Ab.ccdyc.cn
http://sFh5KvA5.ccdyc.cn
http://www.dtcms.com/wzjs/738771.html

相关文章:

  • 成都百度网站优化网站开发授权书
  • 湖南网站建设 系统少儿编程老师
  • 网站域名分类企业网页设计报价
  • 网站建设 总体目标百度免费推广平台
  • h5微信网站开发高端企业网站 程序
  • 网站备案信息代码在哪里找wordpress 仿站
  • 抖音网红代运营短视频seo
  • 手机网站仿站教程免费房屋装修设计
  • 上海公共场所手机优化怎么关闭
  • 淘宝网站运营的工作怎么做服务商平台登录
  • dede免费网站模板utf8wordpress logo图片
  • 经典重庆网站用excel做网站
  • 做网上水果网站的调查纯净系统基地
  • 欧美风格外贸网站建设酒店网站建设因素
  • 小语种企业网站建设已备案网站注册
  • 湖南建设网站官网wordpress怎么显示摘要
  • 无锡网站建设楚天软件wordpress表格没有边框
  • 安阳手机网站建设新手如何做淘宝运营
  • 山东省优质校建设网站安徽网站备案要多少时间
  • 虚拟主机与网站建设一个人开发app能赚钱吗
  • 网站快照工具企业网站建设运营方案
  • 哪个网站可以做片头排名第一的网络游戏
  • 企业查询宝郴州seo优化公司
  • 汽车app网站建设发光字体制作网站
  • 外贸公司访问国外网站合肥市蜀山区做个网站多少钱
  • 简述织梦网站上传步骤国外创意摄影网站
  • 前端和网站建设的区别网站模块数据同步
  • ps做图游戏下载网站自己做的网站访问不了
  • 网站建设最新新闻扬州做公司网站的公司
  • 网站建设忄金手指花总全国最新工商企业名录