des kheys chaud en info

Karabistouilled
2022-12-05 14:24:47

bonjour mes rheys je suis bloqué sur un exo en info

Ecrire un programme tube_com_process1.exe qui crée un tube et y écrit 10 caractères
("0123456789" en une seule écriture). Le programme appelle ensuite une fonction void
lecture(int fd) qui lit le contenu du tube caractère par caractère jusqu'à la fin de fichier. Pour
faire l’affichage des caractères lus dans lecture, vous utiliserez aussi la fonction write sur le
descripteur de fichier de la sortie standard.
Question 1 : un seul processus sera mis en jeu et sera à la fois écrivain et lecteur du tube.
Question 2 : Ecrire un programme tube_com_process2.exe. Pour cette seconde version, le
processus père sera l’écrivain dans le tubeet le processus fils fera appel à la fonction lecture
mise en place précédemmen

on a jamais vu ça en cours elle nous l'a lâché comme ça...

Karabistouilled
2022-12-05 14:25:00

up

Karabistouilled
2022-12-05 14:25:26

help

Choubrocoli
2022-12-05 14:25:49

C'est quel langage ? du C++ ?

Orhila
2022-12-05 14:26:18

Demande a OpenAi il va te faire ton exo

Karabistouilled
2022-12-05 14:26:53

Le 05 décembre 2022 à 14:25:49 :
C'est quel langage ? du C++ ?

en C

Karabistouilled
2022-12-05 14:27:07

Le 05 décembre 2022 à 14:26:18 :
Demande a OpenAi il va te faire ton exo

c'est pas que en python ?

Karabistouilled
2022-12-05 14:27:19

Le 05 décembre 2022 à 14:26:18 :
Demande a OpenAi il va te faire ton exo

c'est pas que en python ?

CriCriFerem
2022-12-05 14:28:02

Un tube ? Qué ?
C'est un stream version golem prof ?

Karabistouilled
2022-12-05 14:28:21

Le 05 décembre 2022 à 14:28:02 :
Un tube ? Qué ?
C'est un stream version golem prof ?

ayaa non le shill

Orhila
2022-12-05 14:39:48

  1. include <stdio.h>
  2. include <unistd.h>
  3. include <string.h>
  4. include <sys/types.h>
  5. include <sys/stat.h>
  6. include <fcntl.h>
  1. define BUF_SIZE 10

void lecture(int fd) {
char buf[BUF_SIZE];
ssize_t nbytes;

// Lire le contenu du tube caractère par caractère jusqu'à la fin de fichier.
while ((nbytes = read(fd, buf, BUF_SIZE)) > 0) {
// Écrire les caractères lus sur la sortie standard.
write(STDOUT_FILENO, buf, nbytes);
}
}

int main() {
int fd;

// Créer un tube avec les droits par défaut.
if (mkfifo("/tmp/my_fifo", 0666) < 0) {
perror("mkfifo");
return 1;
}

// Ouvrir le tube en mode écriture seule.
if ((fd = open("/tmp/my_fifo", O_WRONLY)) < 0) {
perror("open");
return 1;
}

// Écrire "0123456789" dans le tube en une seule écriture.
if (write(fd, "0123456789", BUF_SIZE) < 0) {
perror("write");
return 1;
}

// Fermer le tube.
close(fd);

// Ouvrir le tube en mode lecture seule.
if ((fd = open("/tmp/my_fifo", O_RDONLY)) < 0) {
perror("open");
return 1;
}

// Lire et afficher le contenu du tube.
lecture(fd);

// Fermer le tube.
close(fd);

return 0;
}

Orhila
2022-12-05 14:40:46

Ce programme crée un tube nommé /tmp/my_fifo et y écrit les caractères "0123456789" en une seule écriture. Il appelle ensuite la fonction lecture qui lit le contenu du tube caractère par caractère jusqu'à la fin de fichier et affiche les caractères lus sur la sortie standard.

Note : le chemin du tube peut être modifié selon les besoins. Il est également possible d'utiliser des options de création de tube différentes en utilisant les constantes de la bibliothèque sys/stat.h.

Karabistouilled
2022-12-05 14:41:06

Le 05 décembre 2022 à 14:39:48 :

  1. include <stdio.h>
  2. include <unistd.h>
  3. include <string.h>
  4. include <sys/types.h>
  5. include <sys/stat.h>
  6. include <fcntl.h>
  1. define BUF_SIZE 10

void lecture(int fd) {
char buf[BUF_SIZE];
ssize_t nbytes;

// Lire le contenu du tube caractère par caractère jusqu'à la fin de fichier.
while ((nbytes = read(fd, buf, BUF_SIZE)) > 0) {
// Écrire les caractères lus sur la sortie standard.
write(STDOUT_FILENO, buf, nbytes);
}
}

int main() {
int fd;

// Créer un tube avec les droits par défaut.
if (mkfifo("/tmp/my_fifo", 0666) < 0) {
perror("mkfifo");
return 1;
}

// Ouvrir le tube en mode écriture seule.
if ((fd = open("/tmp/my_fifo", O_WRONLY)) < 0) {
perror("open");
return 1;
}

// Écrire "0123456789" dans le tube en une seule écriture.
if (write(fd, "0123456789", BUF_SIZE) < 0) {
perror("write");
return 1;
}

// Fermer le tube.
close(fd);

// Ouvrir le tube en mode lecture seule.
if ((fd = open("/tmp/my_fifo", O_RDONLY)) < 0) {
perror("open");
return 1;
}

// Lire et afficher le contenu du tube.
lecture(fd);

// Fermer le tube.
close(fd);

return 0;
}

mec tu me sauve la vie merci infiniment

Orhila
2022-12-05 14:41:55

Pour la question 2

  1. include <stdio.h>
  2. include <unistd.h>
  3. include <string.h>
  4. include <sys/types.h>
  5. include <sys/stat.h>
  6. include <fcntl.h>
  7. include <sys/wait.h>
  1. define BUF_SIZE 10

void lecture(int fd) {
char buf[BUF_SIZE];
ssize_t nbytes;

// Lire le contenu du tube caractère par caractère jusqu'à la fin de fichier.
while ((nbytes = read(fd, buf, BUF_SIZE)) > 0) {
// Écrire les caractères lus sur la sortie standard.
write(STDOUT_FILENO, buf, nbytes);
}
}

int main() {
int fd;
pid_t pid;

// Créer un tube avec les droits par défaut.
if (mkfifo("/tmp/my_fifo", 0666) < 0) {
perror("mkfifo");
return 1;
}

// Ouvrir le tube en mode écriture seule.
if ((fd = open("/tmp/my_fifo", O_WRONLY)) < 0) {
perror("open");
return 1;
}

// Créer un processus fils.
pid = fork();
if (pid < 0) {
perror("fork");
return 1;
} else if (pid == 0) {
// Dans le processus fils :

// Fermer le descripteur de fichier du tube en écriture (inutile dans le fils).
close(fd);

// Ouvrir le tube en mode lecture seule.
if ((fd = open("/tmp/my_fifo", O_RDONLY)) < 0) {
perror("open");
return 1;
}

// Lire et afficher le contenu du tube.
lecture(fd);

// Fermer le tube.
close(fd);

return 0;
} else {
// Dans le processus père :

// Écrire "0123456789" dans le tube en une seule écriture.
if (write(fd, "0123456789", BUF_SIZE) < 0) {
perror("write");
return 1;
}

// Attendre la fin du processus

Orhila
2022-12-05 14:42:39

par contre vérifie bien parfois l'IA peeut faire des carabistrouilles

Relnkk
2022-12-05 14:44:49

Le 05 décembre 2022 à 14:27:07 :

Le 05 décembre 2022 à 14:26:18 :
Demande a OpenAi il va te faire ton exo

c'est pas que en python ?

Il fait tout les langages qui existe :hap:

Karabistouilled
2022-12-05 14:48:01

merci pour les explications stepbystep :bave:
je m'attendais pas à avoir une réponse aussi complète :hap:

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.