IALweb Homepage
Forum Home Forum Home > Programmazione > Programmazione > C/C++ - VISUAL C++
  New Posts New Posts RSS Feed - UNIX:Comunicazione tra processi-funzione execlp
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

UNIX:Comunicazione tra processi-funzione execlp

 Post Reply Post Reply
Author
Message
Mifert4 View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 02/Ago/2013
Status: Offline
Points: 2
Post Options Post Options   Thanks (0) Thanks(0)   Quote Mifert4 Quote  Post ReplyReply Direct Link To This Post Topic: UNIX:Comunicazione tra processi-funzione execlp
    Posted: 02/Ago/2013 at 11:02
Salve a tutti.Vi chiedo aiuto per capire dove sbaglio in questo esercizio in cui mi si chiede di:
Creare un processo figlio il quale deve eseguire il comando passato come argomento al programma :
esempio: ./run cp file1.txt file2.txt , oppure ./run rm file1.txt
(Il processo padre attende il completamento del figlio e termina)

#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>

main(int argc, char *argv[])
{
   int status,i;
   pid_t pid;  

  
   if ( (pid=fork()) ==0)
   {
         execlp(argv[1],argv,(char*)0);
         exit(-1); //si torna solo in caso di errore
   }
  
   else //padre
   {
      wait(&status);
      printf("Figlio %d terminato con esito %d\n",pid,WEXITSTATUS(status));
   }
  
   exit(0);
}



Edited by Mifert4 - 02/Ago/2013 at 11:39
Back to Top
Sponsored Links


Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 9940
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 02/Ago/2013 at 15:26

La execlp dopo il pathname deve far riferimento, nel secondo parametro, al comando fornito:
http://linux.die.net/man/3/execlp
http://digilander.libero.it/uzappi/C/librerie/funzioni/execl.html
nel tuo programma, qualcosa del genere:


execlp(argv[1], argv[1], (char *)0);

Ulteriormente fai attenzione a comandi che implicano parametri multipli, i seguenti link forniscono elementi sul caso in esame:
http://www.consorzionettuno.it/materiali/B/228/625/12/2102/11.1.Gestione%20di%20processi%20Unix.pdf
http://diuf.unifr.ch/pai/education/2005_2006/courses/ip/lecture_notes/ln11_fork_exec.pdf
http://people.na.infn.it/~finzi/didattica/LSO/materiale/07-Esercitazione_I_Processi_Unix.pdf
http://forum.html.it/forum/showthread/t-1088970.html

Willy
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,047 seconds.