Ragazzi ciao a tutti ho un problema non riesco a capire come mai la execv non
funziona, potreste darmi una mano? il codice di gestione di processi unix funziona tutto correttamente ma la execv non parte.....

codice:
#include <sys/types.h>
#include <sys/wait.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc,char *argv[])
{
	int status,i,pid,t,value;
	int vett[argc-1];
	int v=0;
	char h[64];
	
	if(argc < 4 || argc > 11)
	{
		printf("errore numero argomenti\n");
		exit(-1);
	}

	for(i=1;i<argc;i++)
	{
		if((strtol(argv[i],NULL,0))<1 || ((strtol(argv[i],NULL,0))>4))
		{printf("valore argomenti errato\n");
		exit(-2);}
	}
	
	for(i=1;i<argc;i++)
	{
		vett[v]=strtol(argv[i],NULL,0);
		v++;
	}
	argc--;

	for(i=0;i<argc;i++)
	{	
		if((pid=fork())==0)
		{	
		 	srand(time(NULL));
			t = rand() % 5 + 1;
			sleep(t);
         printf("Sono il processo figlio %d ho aspettato %d secondi e termino\n",getpid(),t);
			exit(vett[i]);}
		
		
		
	}
	
	for(i=0;i<argc;i++)
	{                   wait(&status);
			    value=WEXITSTATUS(status)-1;
   		            vett[i]=value;
	}
		
	
		for(i=0;i<argc;i++)
		{      
			while(vett[i]>=0)	
			{	if(vett[i]>0)
				{	pid=fork();
					if(pid==-1)
					{perror("errore fork ");
				 	exit(-1);}
				 
					if(pid==0)
                                 	{srand(time(NULL));
			         	t = rand() % 5 + 1;
			         	sleep(t);
           printf("Sono il processo figlio %d ho aspettato %d secondi e termino\n",getpid(),t);
				 	exit(0);}
       				
				

				}
                    		
				if(vett[i]==0)
				{	pid=fork();
				 	if(pid==-1)
				 	{perror("errore fork ");
				  	exit(-1);}
				 
				
				 	if(pid==0)															
					{	
	                    sprintf(h,"Il processo figlio %d è terminato",getpid());					
				        	execv("usr/bin/xmessage",h);
            			        	exit(-1);
					}
				 	
				
				
				}
		
			wait(&status);
			--vett[i];
			}
		}
			
		        
printf("Sono il padre %d e termino perchè non è possibile creare altri processi\nin quanto il valore degli argomenti è:
                        \n",getpid());
			for(i=0;i<argc;i++)
			printf("%d ",vett[i]);
			printf("\ne tutti i figli sono terminati\n");			
			return 0;
		
}