gpt4 book ai didi

c - 如何使用execl()执行另一个程序

转载 作者:行者123 更新时间:2023-11-30 19:52:18 25 4
gpt4 key购买 nike

我有一个关于使用多处理器和共享内存的生产者-消费者的作业

我有一个问题如何使用 execl() 执行另一个文件

在我的程序中将包含3个c文件

parent.c:父进程

生产者.c:生产者进程

consumer.c:消费者进程

编译文件后 -> 命名父级、生产者、消费者

如果我放置所有文件的目录是:/home/assign

在parent.c中,我有一段代码可以像这样通过fork调用生产者和消费者

if (fork() == 0) {  /* in producer process */
/* Replace this program with producer program */

/*idea : execl => path of execution of the program*/

if (execl("/home/assign", "producer", NULL) == -1) {
perror("execl failed for producer");
cleanup_on_exit(); /* clean up before exiting */
exit(3);
}
}

if (fork() == 0) { /* in consumer process */
/* Replace this program with the consumer program */
if (execl("/home/assign", "consumer", NULL) == -1) {
perror("execl failed for consumer");
cleanup_on_exit(); /* clean up before exiting */
exit(3);
}
}

wait(NULL);
wait(NULL);

但是当我通过Linux命令运行程序时./父级

它显示的结果是这样的

execl failed for producer
execl failed for consumer

我知道路径或执行命令之间有问题

你能帮忙吗

最佳答案

if (execl("/home/分配/生产者", "生产者", NULL) == -1) {,对于消费者来说类似。 – Wildplasser

关于c - 如何使用execl()执行另一个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20381546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com