Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3113 connectés 

  FORUM HardWare.fr
  Programmation
  C

  programmation systeme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmation systeme

n°1517381
shinohinat​a
Posté le 21-02-2007 à 09:10:57  profilanswer
 

Bonjour,
je dois écrirer un programme dont un "main" ouvre un fichier, y écrit "bonjour" puis crée un processus fils. après cette création, les deux processus vont écrire dans ce fichier : le père écrira "je suis le père de pid..." le fils écrira : "je suis le fils de pid ... et de père de pid ..."
Synchroniser les écritures en privilégiant le fils avant le père.
Faites une deuxième version de ce programme qui fait apparaitre un phénomène d'entrrelacement sur du code correspondant à plusieurs écritures (writre()) et lectures (read()) dans le fichier
 
Voila le code que l'on a écrit mais linux nous envoie un segmentation fault!!!!!
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
 
int main (void){
 
int pid,d, fils, pere1, pere2;
char* buffer, buffer2[30], buffer3[30];
d=open ("f1.txt",O_RDWR,0700);
if(d>0){
sprintf(buffer, "buongiorno!\n" );
write(d,buffer,8);
}
pid = fork();
if (pid == -1)
 printf("le fork() a échoué \n" );
if (pid ==0){
 fils = getpid();
 sprintf(buffer2,"je suis le fils de PID : %d\n", fils);
 write(d, buffer2, strlen(buffer2));
 }
else
 {
 pere2 = getpid();
 sprintf(buffer3,"Je suis le père de PID : %d\n", pere2);
 write(d, buffer3, strlen(buffer3));
 wait(0);
 }
}
 
merci pour ceux qui pourront aider!!!!! :)

mood
Publicité
Posté le 21-02-2007 à 09:10:57  profilanswer
 

n°1517387
Sebou77
French Tech powaa :-)
Posté le 21-02-2007 à 09:17:06  profilanswer
 

Utilises les balises code ;)

n°1517395
shinohinat​a
Posté le 21-02-2007 à 09:35:13  profilanswer
 

Oui, mais qu'est qu'une balise code car on n'en a jamais utilisé.
Je voulais aussi savoir si vous ne voyez pas une erreur dans notre code,
L'erreur serait probablement dans la ligne avec :
d=open ("f1.txt",O_RDWR,0700);

n°1517400
Emmanuel D​elahaye
C is a sharp tool
Posté le 21-02-2007 à 09:42:30  profilanswer
 

shinohinata a écrit :

Oui, mais qu'est qu'une balise code car on n'en a jamais utilisé.


Alors tu n'as pas lu les regles du forum avant de poster.  
Caÿ mal.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1517419
shinohinat​a
Posté le 21-02-2007 à 10:09:55  profilanswer
 

sujet fermé plus besoin d'a

n°1517420
shinohinat​a
Posté le 21-02-2007 à 10:10:09  profilanswer
 

ide
réponse trouvée

n°1517425
-ThX-
Not here anymore
Posté le 21-02-2007 à 10:15:40  profilanswer
 

Citation :

Le split a été réinventé, vive le split [:dawa]


Message édité par -ThX- le 21-02-2007 à 10:16:00

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  programmation systeme

 

Sujets relatifs
programmation systeme en ccherche doc sur la programmation d'IA, systeme expert ... ...
Programmation systeme[programmation systeme] popen et fgets
programmation système[C/Unix] Programmation systeme
programmation systemeProgrammation d'un site utilisant le SSL ou autre systeme de paiement
[ programmation systeme] => lisez donc[Linux] programmation systéme
Plus de sujets relatifs à : programmation systeme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR