获取信息,我想编写一个程序,做这个命令:如何从子进程
gcc -c file1 file2 file3 ...
程序必须创建子进程和每个孩子将编译一个文件。我在子进程中使用这个命令:
execlp("gcc","gcc","-c","-Wall",argv[i],NULL);
到目前为止好。问题是如果编译文件时出现错误,则父进程必须在出现错误时打印文件的名称。这是父母将打印文件名的一个条件。
我的解决方案是创建一个包含子pid和它编译的文件名的表。父母将等待其孩子结束。在孩子的尽头,我们看看孩子是否正常结束(它返回0)。如果不是,我们在表中搜索找到它使用他的pid处理的文件名。
我正在寻找另一种解决方案。我不知道是否有办法将文件名发送到父进程。当然,只有在该文件中存在错误时我们才会这样做。
谢谢。
对不起,我忘了说,我的程序是在C不是C++,我必须使用POSIX标准 –
哦,这改变了事情,不是吗? – ryyker
@rabahRachid - 在POSIX上添加了一些注释。 'pthread_join()'传递'void ** arg'。应该提供方法来做你需要的。 – ryyker