Chiamata del sistema di legame in c

Chiamata del sistema di legame in c
La chiamata di sistema bind () lega un indirizzo o un nome con qualsiasi socket nella lingua C. Questa chiamata di sistema è stata principalmente utilizzata nella programmazione di socket. Questo indirizzo sarà legato al descrittore di socket. La chiamata di sistema Bind () contiene tre parametri in realtà. Il primo è il descrittore di una presa. Il secondo parametro è il puntatore utilizzato per l'indirizzo di una presa. L'indirizzo deve essere un percorso locale. Il terzo argomento può avere la dimensione di un indirizzo socket. La guida di oggi vedrà come funziona la chiamata di sistema "bind ()" in Ubuntu 20.04 Usando la lingua C. Quindi, accedi prima dal sistema.

Esempio:

Dopo l'accesso corretto e corretto dall'account utente del sistema Linux, aprire l'applicazione della console Shell. È possibile utilizzare il tasto di scelta rapida "Ctrl+Alt+T" o cercarlo dall'area di attività desktop per lanciarlo. Dopo il lancio della console del terminale, creiamo per la prima volta un file di lingua C con la query ampiamente conosciuta come segue:

Questo file è stato creato nella cartella Home Linux. Per aprire e modificare questo file, usa qualsiasi semplice editor. Quelli più suggeriti sono VIM e GNU. Quindi, abbiamo utilizzato il nano editore "GNU" per aprire il nuovo "nuovo.file c ".

Dopo che il file è stato aperto nell'editor, abbiamo aggiunto il codice di seguito sfacciato. Il codice contiene le librerie necessarie incluse in esso per il flusso di programmazione e input-output calze. All'inizio di un codice, abbiamo definito il percorso di una presa come la directory "Home" di Ubuntu 20.04. Il metodo principale è stato inizializzato con una variabile intera e un puntatore dell'array di tipo di carattere come argomento. È stata dichiarata una variabile intera "s". È stata inizializzata una variabile tipo di struttura per l'indirizzo socket. La funzione "socket" è stata utilizzata per inizializzare un socket nel sistema Linux e un flusso di socket con 0 dimensioni. Tutte le informazioni relative alla presa sono state salvate nel suo descrittore "S". Se la dimensione di un socket è uguale a "-1", deve lanciare un messaggio di errore durante la compilazione di un codice.

La funzione "Memset" è stata usata qui per legare l'indirizzo del socket locale con le dimensioni di una struttura definita già. La famiglia di un indirizzo di sistema di sistema è stata definita. Successivamente, la chiamata di sistema Strncpy è stata utilizzata qui per copiare l'indirizzo socket su un percorso strutturato e trovare la dimensione di un percorso strutturato. Ora arriva la parte principale. Abbiamo usato qui l'istruzione "if" per utilizzare la chiamata di sistema bind (). La chiamata del sistema di bind ha recuperato il descrittore di socket, ottenendo l'indirizzo strutturale e legalo con l'indirizzo del socket locale e ottenendo le dimensioni di un percorso dell'indirizzo socket. Se la dimensione di un indirizzo strutturale è uguale a "-1", stamperà un errore "Bind" insieme ad un messaggio di errore integrato dal sistema utilizzando la funzione "Exit_FaiLure". Il codice è stato salvato dopo quello.

In primo luogo, compila il codice con un compilatore "GCC" utilizzato per il linguaggio C nel sistema Linux. Successivamente, eseguire il file con "A.fuori ”query nella console. L'output lancia un'eccezione che l'indirizzo è già in uso. Ha indicato l'indirizzo directory "home" del sistema Linux, che è sempre nell'uso degli utenti.

Apriamo lo stesso "nuovo.File C "per fare un piccolo cambiamento in esso. Dobbiamo utilizzare la stessa query "nano" nell'applicazione della console per aprirla all'interno di un editor per la modifica. Dopo che il file è stato aperto correttamente, abbiamo modificato il percorso socket definito nella parte superiore del codice. Abbiamo cambiato il percorso verso "immagini" da "casa" per ottenere un risultato diverso.

Dopo la compilazione, il file è stato eseguito e ha ricevuto un altro messaggio. Questo messaggio indica anche l'errore "autorizzazione negato" di accedere al percorso "Immagini".

Conclusione:

Quindi, questo riguardava la chiamata di sistema Bind () in C all'interno del sistema operativo Linux. Abbiamo fornito una breve spiegazione della programmazione di socket. Assicurati di passare attraverso il manuale Linux per una chiara comprensione.