Fonction Mkfifo C

Fonction Mkfifo C
«Un fichier FIFO personnalisé avec le nom de fichier est créé par la fonction mkfifo. Un fichier qui se comporte comme un tuyau est appelé FIFO ou un tuyau nommé. Pour l'écriture, une opération ouvre le FIFO, et pour lire, un autre. Pour ouvrir un tuyau nommé, nous pouvons utiliser la fonction de bibliothèque «mkfifo ()». Le chemin d'accès du FIFO et du mode du FIFO est les deux paramètres que la fonction «mkfifo ()» accepte. Les autorisations du fichier sont définies à l'aide du paramètre de mode; Pour plus d'informations, voir l'attribution des autorisations de fichiers. La valeur de retour typique de MKFIFO est 0, ce qui indique le succès. Dans ce guide, nous expliquerons ce concept en détail et explorerons un exemple ici dans lequel nous utiliserons cette fonction «mkfifo ()» et écrire dans un fichier et le lire dans un autre fichier."

Syntaxe
int mkfifo (const char * pathName, mode_t mode);

Exemple
Nous allons effectuer cet exemple sur Ubuntu 20.04. Tout d'abord, nous installons le compilateur GCC, puis ouvrons l'éditeur de texte d'Ubuntu 20.04 et mettez du code. Nous allons créer deux fichiers différents ici, puis lire / écrire des données sur ces fichiers à l'aide de la fonction "mkfifo ()" dans la programmation C. Pour créer un code C, nous devons mettre les fichiers d'en-tête. Le «stdio. Le fichier d'en-tête h ”est ici, qui est l'entrée / sortie standard qui inclut les informations d'entrée / sortie. Nous avons une «chaîne. Fichier d'en-tête H ”, et ce fichier d'en-tête est utilisé ici pour les fonctions de chaîne. Ensuite, nous avons le «Unistd. Fichier d'en-tête h ”, qui est utilisé pour accéder à l'API. Le «fcntl. h ”est utilisé pour le contrôle du fichier et« SYS / STAT.H ”comprend des éléments de construction qui facilitent la connaissance des propriétés d'un fichier.

De plus, nous incluons les «Sys / Types.Fichier d'en-tête h ”. Nous utilisons la fonction «main ()» après ces fichiers d'en-tête, et cette fonction déclare le type de données comme «int». Ci-dessous, nous déclarons l'intérieur «int» et le nommez «FD». Après cela, nous déclarons et initialisons le «char» nommé «MyFifo» et l'avons initialisée avec «/ tmp / fifo». Maintenant, nous avons la fonction «mkfifo ()» où nous passons deux paramètres. Le premier paramètre est «MyFifo» et le deuxième paramètre est «0666» ici. Le premier paramètre est le chemin d'accès, et le second est le mode.

Ensuite, nous déclarons deux tableaux du nom «arr1 []» et «arr2 []» de la taille «80». Nous utilisons la boucle «while ()» ici et y mettons «1». À l'intérieur de cette boucle, nous avons différentes déclarations. Nous utilisons le «Open ()» pour lire ou écrire dans le fichier. Nous mettons le chemin du fichier comme premier paramètre, puis utilisons le drapeau ici comme deuxième paramètre, qui est «O_Wronly». Ce drapeau "O_Wronly" est utilisé ici, ce qui signifie que nous ouvrons ce fichier pour écrire uniquement. La fonction «fgets ()» est là pour lire les personnages.

Ensuite, nous avons la fonction «écriture ()», qui est utilisée pour rédiger des données du tampon qui est déclaré par l'utilisateur, puis fermant ce fichier en utilisant la fonction «close ()». Après cela, nous avons à nouveau la fonction "Open ()", mais cette fois, nous utilisons l'indicateur "0_rdonly", ce qui signifie que cette fois, le fichier est ouvert pour la lecture seule. Nous avons également le «read ()» qui est utilisé uniquement pour lire les données qui ont été précédemment écrites dans ce fichier. Ensuite, nous utilisons le «printf» pour rendre les données sur l'écran de sortie et fermer à nouveau ce fichier en utilisant la fonction «close ()». Nous devons fermer le fichier que nous avons ouvert. Ici, nous fermons le support de la boucle while et plaçons la déclaration «retour 0» en dessous de ce.

Nous créons ici le deuxième code C en mettant quelques lignes de code. Nous utilisons les mêmes fichiers d'en-tête dans ce code, que nous avons utilisés dans le code ci-dessus. Ensuite, nous avons la fonction «main ()», et à l'intérieur, nous déclarons «int» comme «FD1» et «char» comme «myfifo». Le «mkfifo ()» est également utilisé ici de la même manière que nous l'avons utilisé dans le code ci-dessus. Ici, nous avons deux tableaux «char» du nom «STR1» et «STR2» et attribuons la taille en tant que «80». La fonction "Open ()" est utilisée et l'indicateur "0_rdonly" est utilisé pour indiquer que le fichier est ouvert pour l'accès en lecture seule cette fois. Nous avons une fonction appelée «read ()» qui est exclusivement utilisée pour lire les données.

Ensuite, nous rendons les données sur l'écran de sortie à l'aide de «printf», et nous fermons ce fichier en utilisant la fonction «close ()». Le chemin du fichier est le premier paramètre, et le deuxième paramètre est l'indicateur, qui dans ce cas est «O_WRONLY."Nous ouvrons ce fichier pour écrire uniquement en utilisant l'indicateur" O_Wronly "dans ce cas. Ici, les caractères peuvent être lus en utilisant la fonction "fgets ()". La fonction «write ()» est utilisée pour écrire des données à partir du tampon que l'utilisateur a déclaré avant d'utiliser la fonction «close ()» pour fermer le fichier.

Maintenant, nous obtenons la sortie en ouvrant deux terminaux simultanément et en exécutant la commande sur les deux terminaux en même temps. Tout d'abord, nous compilons les deux fichiers sur des terminaux séparés. Sur le premier terminal, nous exécutons la commande qui est donnée ci-dessous, puis nous passons au deuxième terminal.

Sur le deuxième terminal, nous mettons cette commande pour compiler le deuxième fichier de code C. Après une compilation réussie des deux commandes sur différents terminaux, nous allons exécuter les deux codes.

Pour l'exécution, nous avons mis la commande donnée sur le premier terminal; Rien ne s'affiche ici.

Maintenant, sur le deuxième terminal, nous devons exécuter ce code en écrivant cette commande qui est affichée ici. De plus, rien n'est affiché ici.

Sur le premier terminal, écrivez «bonjour», appuyez sur Entrée et ouvrez le deuxième terminal.

Ce «bonjour» est également affiché ici sur le deuxième terminal, que nous avons écrit sur le premier terminal.

Ici, vous pouvez voir les sorties des deux fichiers dans les images, qui sont données ci-dessous.

Conclusion

Nous présentons ce guide pour vous montrer comment la fonction «mkfifo ()» fonctionne dans la programmation C. Nous avons expliqué cette fonction «mkfifo ()» en détail ici, et nous avons également démontré un exemple ici dans lequel nous avons utilisé cette fonction «mkfifo ()». Nous avons également fourni la sortie ici, vous verrez donc facilement comment utiliser cette fonction «mkfifo ()» en C. Nous espérons que ce guide améliorera votre connaissance des fonctions de la programmation C.