#include <sys/types.h>#include <stdio.h>#include <unistd.h>int main(){pID t pID; /*fork a child process*/ pID = fork(); if (pID < 0) { /*error occurred*/ fprintf(stderr,"Fork Failed"); return 1; } else if (pID == 0) {/*child process */ execlp("/bin/ls","ls",NulL); } else { /*parent process*/ /*parent will wait for the child to complete */ wait(NulL); printf("Child Complete"); } return 0;}
更新:
我应该为每个子进程及其父进程附加一个ID,在子进程执行时打印信息,并在终止时打印终止通知.我现在看到上面的这段代码列出了当前目录的内容,并在进程终止时打印“Child Complete”.整个目录的列表是否被视为一个进程?如果是这样,第二个新的子进程在哪里/如何进入图片?
解决方法 在Java中,这可能看起来像 –public static voID main(String[] args) { try { Process p = Runtime.getRuntime().exec("/bin/ls"); final inputStream is = p.getinputStream(); Thread t = new Thread(new Runnable() { public voID run() { inputStreamReader isr = new inputStreamReader(is); int ch; try { while ((ch = isr.read()) != -1) { System.out.print((char) ch); } } catch (IOException e) { e.printstacktrace(); } } }); t.start(); p.waitFor(); t.join(); System.out.println("Child Complete"); } catch (Exception e) { e.printstacktrace(); }}总结
以上是内存溢出为你收集整理的使C fork代码适应Java程序全部内容,希望文章能够帮你解决使C fork代码适应Java程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)