微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LINUX上的C – 多个subprocessexecexception次数

我试图创buildn = 10的subprocess,并使其执行和平的代码..然而,它创build了14个subprocess无差别的n。 这是为什么?

这是示例代码

#include <stdlib.h> #include <stdio.h> int main() { printf("It worked! "); return 0; }

这是主要的程序:

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> #include <sys/wait.h> int main (int argc,char *argv[]) { int n = 10; pid_t pid; int status = 0; int fd2[2]; int i = 0; while (i < n) { /*create the pipe */ if (pipe(fd2) == -1) { fprintf(stderr,"Problem at pipe: %sn",strerror(errno)); exit(1); } /*create fork*/ pid = fork(); if (pid == -1) { fprintf(stderr,"Problem at fork: %sn",strerror(errno)); exit(1); } else if (pid == 0) /*in child*/ { close(fd2[0]); close(1); dup2(fd2[1],1); close(fd2[1]); execl("sample.bin","sample.bin",NULL); fprintf(stderr,"Problem at exec: %s",strerror(errno)); exit(1); } /* in parent */ close(fd2[1]); char line[255]; if (n = read(fd2[0],line,254)) { printf("%d The message is: %sn",i,line); } close(fd2[0]); wait(&status); i++; } return 0; }

WINAPI_FAMILY_PARTITION是做什么的?

select()函数的第一个参数究竟是什么?

SymInitialize失败,错误2147483661

在Windows / Cygwin的Netbeans中用libcurl编译代码的问题

在C / C ++中创build1个用零填充的1GB文件的最快方法是什么?

如何让特定的网站/ URL使用C#Windows应用程序

什么是从malloc()做的Windows和Linux本地操作系统/系统调用

用户使用C#System.DirectoryServices在远程Windows服务器上进行pipe理

针对embedded式Linux的简单的C / C ++ FTP和SFTP客户端库推荐

如何在不连接kernel32.dll和ntdll.dll的情况下运行PE映像

我纠正了代码,现在输出是我所期望的。 当然,另外一个问题是我在读取相同的变量n时使用。

我从这个修改

if (n = read(fd2[0],line); }

对此:

int m; while((m = read(fd2[0],254) > 0) { printf("%d The message is: %sn",line); }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐