mdj | bonsoir a tous , voila j'ai un exercice que j'ai essayé de faire ,
je vous propose l'exercice ainsi que mes réponses , si mes réponses(très probable) sont fausses , je vous serais très reconnaissant de me corriger car j'ai l'impression d'etre passé a coté du but de l'exercice
Code :
- $ ls -ail h
- 3427142 prw-r--r-- 1 yunes staff 0 16 Jan 13:05 h
- $
|
Code :
- // programme a.c
- #define L 1000
- int d; char buf[L]; int lu; int total;
- d = open(argv[1],O_RDONLY);
- printf("%s: %s ouvert\n",argv[0],argv[1]);
- while ((lu=read(d,buf,L))>0) {
- buf[lu] = 0;
- printf("J'ai lu %s\n",buf);
- }
- return EXIT_SUCCESS;
|
Code :
- // programme b.c
- #define L 10
- int d; char buf[L]; int lu; int total;
- d = open(argv[1],O_WRONLY);
- printf("%s: %s ouvert\n",argv[0],argv[1]);
- while ((lu=read(STDIN_FILENO,buf,L))>0)
- write(d,buf,lu);
- close(d);
- return EXIT_SUCCESS;
|
1 que se passe t-il si l'on exécute la commande a h depuis un terminal ?
2 que se passe t-il si l'on exécute la commande b h depuis un autre terminal mais sur la même machine ?
3 que se passe t-il lorsque on tape abcdef suivi d'un retour à la ligne sur le terminal depuis lequel on a lancé b ?
4 que se passe t-il si l'on tape <CTRL>-D sur le terminal depuis lequel on a lancé b ?
reponses :
1 le programme a n'entrera pas dans le while et n'ecrira rien, car le fichier est de taille nulle , vide 2 l'ouverture du fichier avec retournera une erreur car le fichier est deja ouvert en lecture 3 ca devrais ecrire dans le fichier mais comme il ne s'est pas ouvert bah je me plante peut etre 4 on quite le programme b EDIT: je viens d'essayer les programmes et le fichier s'ouvre bien a la question 2 et on ecrit bien dedans !
toute suggestion est la bienvenue merci pour votre aide Message édité par mdj le 08-09-2011 à 21:44:20
|