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

做微信商城网站公司templatemonster wordpress

做微信商城网站公司,templatemonster wordpress,新干线快递国内如何查单,合肥网站营销推广简介#xff1a; 在这篇博客中#xff0c;我们将深入探索如何在 C 程序中实现子进程的创建与执行#xff0c;以及父子进程间的管道通信。核心代码提供了一个框架#xff0c;用于接收用户命令、创建子进程并利用 execvp 系统调用执行这些命令。此外#xff0c;我们通过创建…简介 在这篇博客中我们将深入探索如何在 C 程序中实现子进程的创建与执行以及父子进程间的管道通信。核心代码提供了一个框架用于接收用户命令、创建子进程并利用 execvp 系统调用执行这些命令。此外我们通过创建管道pipe展示了如何在父子进程间安全地传递数据。 本文重点介绍 fork, pipe, 和 execvp 的使用方法并解释了如何将标准输出和标准错误从子进程重定向到父进程。这一过程涉及对 Unix 系统调用的深入理解尤其是进程间通信IPC的概念。我们的目标是提供一个清晰的指南帮助读者理解和实现在现代操作系统中广泛应用的进程创建、执行和通信机制。 该教程适合对操作系统、进程管理以及 Unix/Linux 系统编程感兴趣的读者。无论是系统编程新手还是有经验的开发者都可以通过这个实例加深对进程间通信和命令行界面CLI应用编程的理解。 exec相关 一共有六个分三组记忆 execlp - execvp execl - execv execle - execve这几个函数的速记 记忆口诀如下 0、exec是通用前缀 1、 p 代表第一个参数是file 也就是程序的名字比如 ls 如果名字没带p, 代表第一个参数是path, 比如 /bin/ls 2、 l 代表参数传递的是list, 参数是一个个传递的最后一个参数为NULL 3、 v 代表argv 参数是用char* 数组传递的 4、 e 代表环境变量 1、execlp l-list,p- file 参数就是(file, a1, a2, a3,..., NULL); 2、execvp v-argv,p-file. 参数就是file, aegv 3、execl l-list,没p - path 参数就是(path, a1, a2, a3, ..., NULL); 4、execv v-argv,没p-path 参数(path, argv); 5、execle l-list,没p-path, e-env 参数(path, a0, a1, ..., NULL, env); 6、execve v-aegv,没p-path, e-env 参数(path, argv, env);实战代码 #include stdio.h #include stdlib.h #include unistd.h #include sys/wait.h #include string.h #include iostream #include stringbool isCommandSupport(std::string command) {if (command ls || command pwd || command ps || command cat || command grep ||command wc || command exit) {return true;}return false; }void childTask() {while (true) {// 获得一整行输入std::string line;size_t len 0;std::getline(std::cin, line);// 进行分割char *p strtok((char *) line.c_str(), );char *argv[100];int argc 0;while (p ! NULL) {argv[argc] p;p strtok(NULL, );}argv[argc] NULL;if (argc 0) {continue;}if (isCommandSupport(argv[0])) {if (strcmp(argv[0], exit) 0) {exit(0);}} else {printf(command not support\n);continue;}int pipefd[2];pid_t pid;char buf;if (pipe(pipefd) -1) {perror(pipe);exit(EXIT_FAILURE);}pid fork();if (pid -1) {perror(fork);exit(EXIT_FAILURE);}if (pid 0) { /* 子进程 */close(pipefd[0]); // 关闭读端dup2(pipefd[1], STDOUT_FILENO); // 将标准输出重定向到管道写端dup2(pipefd[1], STDERR_FILENO); // 将标准错误也重定向到管道写端close(pipefd[1]); // 关闭原始写端execvp(argv[0], argv);_exit(EXIT_FAILURE);} else { /* 父进程 */close(pipefd[1]); // 关闭写端while (read(pipefd[0], buf, 1) 0) {write(STDOUT_FILENO, buf, 1);}close(pipefd[0]); // 关闭读端int status;waitpid(pid, status, 0);if (WIFEXITED(status)) {} else if (WIFSIGNALED(status)) {printf(child terminated abnormally, signal %d\n, WTERMSIG(status));}}} }int main() {childTask(); }
http://www.zqtcl.cn/news/280703/

相关文章:

  • 做网站需要什么技术员商城型网站开发网站建设
  • discuz做地方门户网站网站大全免费完整版
  • 莆田人做的网站一天赚2000加微信
  • 阿里云网站访问不了怎么办做网站二维码
  • 手机商城网站建设可采用的基本方式有
  • 网站备案管理做广告公司网站建设价格
  • 绵阳专业网站建设公司上海外贸公司排名榜
  • 如何做英文系统下载网站快速排名工具免费
  • 苏州建网站必去苏州聚尚网络网页视频提取在线工具
  • 网站建设服务市场分析百度集团
  • 网站怎么企业备案信息做网站业务员如何跟客户沟通
  • 如何网站推广知名的集团门户网站建设费用
  • 网站入口设计规范专门做喷涂设备的网站
  • 最简单网站开发软件有哪些企业管理培训课程培训机构
  • 桂城网站制作公司wordpress 导航网站
  • 一个公司做网站需要注意什么条件网站备案 登陆
  • 百度网站介绍显示图片装修公司一般多少钱一平方
  • 网站销售如何做业绩我找伟宏篷布我做的事ko家的网站
  • 建立网站有哪些步骤?jsp网站开发详细教程
  • 网站怎么做直播功能旅游做攻略用什么网站
  • 企业外贸营销型网站如何写好软文推广
  • 免费建站的网址个人网站建设程序设计
  • 淘宝网站建设违规吗上海大公司
  • 大淘客怎么自己做网站自己开网站能赚钱吗
  • 大型门户网站开发北京网站建设管庄
  • 大连建设工程网站网站建设组织管理怎么写
  • wordpress英文站注册域名需要注意什么
  • 营销型网站的建设重点是什么深圳logo设计公司排名
  • 做网站的用什么软件呢网站排名优化服务公司
  • 网站开发完整视频网站集约化建设较好的城市