funzione mkfifo c

funzione mkfifo c
“Un file FIFO personalizzato con nome file Nome viene creato dalla funzione MKFIFO. Un file che si comporta come un tubo viene definito FIFO o un tubo chiamato. Per la scrittura, un'operazione apre il FIFO e per la lettura, un'altra. Per aprire un tubo denominato, possiamo utilizzare la funzione libreria "mkfifo ()". Il percorso del FIFO e della modalità FIFO sono i due parametri che la funzione "mkfifo ()" accetta. Le autorizzazioni del file sono impostate utilizzando il parametro della modalità; Per ulteriori informazioni, consultare l'assegnazione delle autorizzazioni di file. Il tipico valore di ritorno da mkfifo è 0, che indica il successo. In questa guida, spiegheremo questo concetto in dettaglio ed esploreremo un esempio qui in cui utilizzeremo questa funzione "mkfifo ()" e scrivere in un file e leggeremo in un altro file."

Sintassi
int mkfifo (const char *pathname, modalità modalità_t);

Esempio
Eseguiremo questo esempio su Ubuntu 20.04. Innanzitutto, installiamo il compilatore GCC e quindi apriamo l'editor di testo di Ubuntu 20.04 e metti un po 'di codice. Creeremo qui due file diversi e quindi leggere/scrivere dati su questi file utilizzando la funzione "mkfifo ()" nella programmazione C. Per la creazione di un codice C, dobbiamo mettere i file di intestazione. Lo "stdio. Il file di intestazione h "è qui, che è l'ingresso/output standard che include le informazioni di input/output. Abbiamo una "stringa. H ”file di intestazione e questo file di intestazione viene utilizzato qui per le funzioni di stringa. Quindi abbiamo "unistd. H ”File di intestazione, che viene utilizzato per l'accesso all'API. Il "fcntl. h "viene utilizzato per il controllo del file e" sys/stat.h "include blocchi di costruzione che rendono più facile conoscere le proprietà di un file.

Inoltre, includiamo il "sistema/tipi.File di intestazione h ". Utilizziamo la funzione "main ()" dopo questi file di intestazione e questa funzione dichiara il tipo di dati come "int". Sotto questo, dichiariamo l'intero "int" e lo chiamiamo "fd". Successivamente, dichiariamo e inizializziamo il "char" chiamato "myfifo" e lo inizializziamo con "/tmp/FIFO". Ora abbiamo la funzione "mkfifo ()" in cui passiamo due parametri. Il primo parametro è "myfifo" e il secondo parametro è "0666" qui. Il primo parametro è il percorso e il secondo è la modalità.

Quindi dichiariamo due array del nome "arr1 []" e "arr2 []" della dimensione "80". Utilizziamo il ciclo "while ()" qui e ci mettiamo "1". All'interno di questo durante il ciclo, abbiamo dichiarazioni diverse. Utilizziamo "Open ()" per la lettura o la scrittura al file. Mettiamo il percorso del file come primo parametro e quindi utilizziamo il flag qui come secondo parametro, che è "o_wronly". Questo flag "o_wronly" viene utilizzato qui, il che significa che apriamo questo file solo per scrivere. La funzione "fgets ()" è qui per leggere i personaggi.

Quindi abbiamo la funzione "write ()", che viene utilizzata per scrivere dati dal buffer che viene dichiarato dall'utente e quindi chiusura di questo file utilizzando la funzione "Close ()". Dopo questo, abbiamo di nuovo la funzione "Open ()", ma questa volta utilizziamo il flag "0_rdonly", il che significa che questa volta il file è aperto per sola lettura. Abbiamo anche il "read ()" che viene utilizzato solo per la lettura dei dati precedentemente scritti in questo file. Quindi utilizziamo la "printf" per rendere i dati nella schermata di output e chiudere di nuovo questo file utilizzando la funzione "Close ()". Dobbiamo chiudere il file che abbiamo aperto. Qui, chiudiamo la staffa del ciclo while e inseriamo la dichiarazione "return 0" al di sotto di questo.

Stiamo creando il secondo codice C qui mettendo alcune righe di codice. Usiamo gli stessi file di intestazione in questo codice, che abbiamo utilizzato nel codice sopra. Quindi abbiamo la funzione "main ()", e all'interno di questo, dichiariamo "int" come "fd1" e "char" come "myfifo". Il "mkfifo ()" è anche utilizzato qui allo stesso modo in cui l'abbiamo usato nel codice sopra. Qui, abbiamo due array "char" del nome "STR1" e "STR2" e assegniamo la dimensione come "80". Viene utilizzata la funzione "Open ()" e il flag "0_rdonly" viene utilizzato per indicare che il file è aperto per l'accesso di sola lettura questa volta. Abbiamo una funzione chiamata "read ()" che viene utilizzata esclusivamente per leggere i dati.

Quindi, rendiamo i dati nella schermata di output usando "printf" e chiudiamo questo file utilizzando la funzione "chiusura ()". Il percorso del file è il primo parametro e il secondo parametro è il flag, che in questo caso è "o_wronly."Apriamo questo file per scrivere solo usando il flag" O_WRONLY "in questo caso. Qui, i personaggi possono essere letti usando la funzione "fgets ()". La funzione "Write ()" viene utilizzata per scrivere dati dal buffer che l'utente ha dichiarato prima di utilizzare la funzione "Close ()" per chiudere il file.

Ora, otteniamo l'output aprendo contemporaneamente due terminali ed eseguendo il comando su entrambi i terminali contemporaneamente. Innanzitutto, compiliamo entrambi i file su terminali separati. Nel primo terminale, eseguiamo il comando che viene indicato di seguito e quindi passiamo al secondo terminale.

Nel secondo terminale, mettiamo questo comando per la compilazione del secondo file di codice C. Dopo la raccolta riuscita di entrambi i comandi su terminali diversi, eseguiremo entrambi i codici.

Per l'esecuzione, abbiamo messo il comando dato sul primo terminale; Niente verrà visualizzato qui.

Ora, nel secondo terminale, dobbiamo eseguire questo codice scrivendo questo comando che viene mostrato qui. Inoltre, nulla viene visualizzato qui.

Sul primo terminale, scrivi "ciao", premi invio e apri il secondo terminale.

Questo "ciao" viene visualizzato anche qui sul secondo terminale, che abbiamo scritto sul primo terminale.

Qui, puoi vedere gli output di entrambi i file nelle immagini, che sono indicati di seguito.

Conclusione

Presentiamo questa guida per mostrarti come funziona la funzione "mkfifo ()" nella programmazione C. Abbiamo spiegato in dettaglio questa funzione "mkfifo ()" e abbiamo anche dimostrato un esempio qui in cui abbiamo utilizzato questa funzione "mkfifo ()". Abbiamo fornito anche l'output qui, quindi vedrai facilmente come utilizzare questa funzione "mkfifo ()" in c. Speriamo che questa guida migliorerà la tua conoscenza delle funzioni della programmazione C.