I have an assignment on producer-consumer with using multiprocessor and shared memory
I have a question how to use execl() to execute another file
In my program will consist of 3 c files
parent.c : parent process
producer.c : producer process
consumer.c : consumer process
After I compile the file -> name parent,producer,consumer
If I put directory that I put all the files are : /home/assign
in parent.c I have a code to call producer and consumer by fork like this
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);
however when I run the program through Linux command ./parent
It show result like this
execl failed for producer
execl failed for consumer
which I know that something wrong between path or the execution command
Can you help with this
 
                        
if (execl("/home/assign/producer", "producer", NULL) == -1) {, and similar for consumer. – wildplasser