| ++Taz a écrit : 
 
 ton code compile meme pas alors meci de reposer un truc potable
 
 | 
 
tu es gentil mais si tu veux que je te file les 1500 lignes de code sur le forum il n'y a pas de problème je te file plus de code comme ca tu es content mais cela ne va pas t'avancer à grand chose étant donné que je ne poste pas les fichiers
#include "common.h"
#include "semaphore.h"
#include "sharedMemory.h"
 
Si tu veux vraiment m'aider alors je ne pense pas que compiler mon code soit nécéssaire, reprend juste le principe :
je suis dans le pere que tape des commandes qui sont interprété dans un fils crée par popen et je récupère le résultat grace au pipe fourni par popen.
 
 
 
#include<errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include <sys/ipc.h>
#include<unistd.h>
#include <signal.h>
 
#include "common.h"
#include "semaphore.h"
#include "sharedMemory.h"
 
 
 
  int shmid;
  int semid;
 
#include "listenConnection.h"
 
 
 
void arret(int signal)
{
  sem_remove(semid);
  shm_detach(shmid);
  shm_remove(shmid);
  exit(0);
}
 
int main_work(char *argv[])
{
 int pid;
 char buffer_stdin[100];
 char buffer_stdout[SHM_SIZE - 100];
 FILE* a;
 
 switch(pid = fork())
  {
  case -1 :
    perror("\nErreur lors du fork concernant l'initialisation du serveur d'ecoute de connexion\n" );
    exit(EXIT_FAILURE);
  case 0:
    //init_listenConnection(argv);
   while(1)
      {
 sleep(1);
 P(semid);
 ls_write(sock,data->command , sizeof(data->command));
 ls_write(sock,data->result , sizeof(data->result));
 V(semid);
      }
    break;
  default :
    while (1)
    {
      P(semid);
      printf("Travail collaboratif#>" );
      fgets(buffer_stdin,sizeof(buffer_stdin),stdin);
      strcpy(data->command, buffer_stdin);
      if (strlen(buffer_stdin)-1 != 0)
 {
 if ((a = popen(buffer_stdin,"r" )) == NULL)  
  perror("\nProblème avec le système de saisie des commandes" );
 fgets(buffer_stdout,sizeof(buffer_stdout),a);
 printf("%d",strlen(buffer_stdout));
 printf("%s",buffer_stdout);
        strncpy(data->result, buffer_stdout,sizeof(buffer_stdout));
 pclose(a);
      }
      else
 {
   strncpy(data->result,"\0",sizeof(buffer_stdout));
 }
      V(semid);
    }
   
  }
 
}
 
 
int main (int argc, char* argv[])
{
  struct sigaction a;
 
  a.sa_handler = arret;
  sigemptyset(&a.sa_mask);  
  a.sa_flags = 0;
  sigaction(SIGINT,&a,NULL);
 
  shmid = initshm();
  semid = init_sem();
  sem_set_value(semid,1);
 
 
  main_work(argv);
 
  exit(0);
}
 
 ---------------
			
L'été il fait bo