GNU/Linux >> Linux Esercitazione >  >> Linux

Come rendere una funzione async-signal-safe?

Puoi usare fcntl() come alternativa a flock().


flock() è generalmente async-signal-safe perché è una chiamata di sistema. La sua semantica rende difficile implementarlo in modo diverso. Non è nell'elenco di funzioni asincrone sicure per il segnale di POSIX perché non è affatto in POSIX.

Probabilmente non hai bisogno dello sblocco esplicito perché flock() i blocchi vengono rilasciati automaticamente quando tutti i descrittori di file che fanno riferimento alla descrizione del file aperto vengono chiusi.

Il printf() e fprintf() le chiamate dovrebbero essere sostituite con l'appropriato write() chiamate. Le funzioni stdio non sono nell'elenco delle funzioni async-signal-safe e spesso sono fortemente async-signal-unsafe.

Il abort() call è probabilmente meglio sostituito impostando il segnale sull'azione predefinita e inviandolo nuovamente a self; in questo modo, le shell sanno che il tuo programma è terminato a causa del segnale e possono interrompere le sequenze di comandi quando appropriato.


Linux
  1. Come far funzionare i Permalink di WordPress in Nginx

  2. Come rendere accessibile una directory condivisa tramite Sftp?

  3. Come fare in modo che Startx usi Xinitrc alternativo?

  4. Come fare una VPN

  5. C++11:come creare un alias per una funzione?

Come fare in modo che Raspberry Pi si avvii nella GUI per impostazione predefinita

Come creare una GIF in GIMP [Tutorial semplice]

Come fare in modo che l'ultracopiatrice gestisca la funzione taglia-copia-incolla in Nautilus?

Come creare un sito web sul pannello di controllo di Vesta

Come rendere un utente un amministratore in Debian 11

Come creare un server Minecraft su distribuzioni Linux