GNU/Linux >> Linux Esercitazione >  >> Linux

Perché select è usato in Linux

Programmi che vogliono continuare a funzionare mentre anche la lettura dell'input interattivo dell'utente deve essere multithread o devono leggere i flussi di input con attenzione e, in particolare, in modo condizionale.

Select(2) può essere utilizzato per implementare il secondo modello di progettazione. Può determinare se l'input può essere letto senza bloccare l'intera applicazione.


Il select() la chiamata di sistema ti dice se ci sono dati da leggere sui descrittori di file che ti interessano. In senso stretto, si tratta di stabilire se un'operazione di lettura sul descrittore di file bloccherà o meno.

Se esegui read() su un descrittore di file, come quello connesso a una porta seriale, e non ci sono dati da leggere, la chiamata si bloccherà finché non ci saranno dati da leggere. Programmi che usano select() non desiderare di essere bloccato in questo modo.

Chiedi anche:

Perché dobbiamo incrementare il descrittore di file di 1 e passarlo mentre sto passando il descrittore di file già impostato su select ?

Probabilmente sta specificando la dimensione di FD_SET. Il primo argomento di select() è noto come nfds e POSIX dice:

Il nfds argomento specifica l'intervallo di descrittori da testare. Il primo nfds i descrittori devono essere verificati in ciascuna serie; cioè, i descrittori da zero a nfds-1 nei set di descrittori devono essere esaminati.

Quindi, per testare un descrittore di file n , il valore in nfds deve essere almeno n+1 .


Si utilizza select call quando è necessario monitorare costantemente i descrittori di file fino a quando non sono pronti per alcuni IO senza blocco.

Generalmente utilizzato quando si desidera che l'IO (ad es. read() ) non blocchi, leggere la pagina :man

Leggi anche le relative API


Linux
  1. Linux:tutto è un file?

  2. Permessi dei file in Linux – Lettura/Scrittura/Esegui

  3. 10 pratici esempi di comandi di taglio Linux per selezionare le colonne di file

  4. Troncare un file mentre è in uso (Linux)

  5. Perché abbiamo 3 tipi di selezioni X in LINUX?

Comando file Linux

Come creare un file in Linux

Meno comandi in Linux

Comando Gzip in Linux

Come leggere un file con spazi in Linux

Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 5