GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rendre une fonction async-signal-safe ?

Vous pouvez utiliser fcntl() comme alternative à flock().


flock() est généralement async-signal-safe car il s'agit d'un appel système. Sa sémantique rend difficile son implémentation différente. Ce n'est pas dans la liste POSIX des fonctions async-signal-safe car ce n'est pas du tout dans POSIX.

Vous n'avez probablement pas besoin du déverrouillage explicite car flock() les verrous sont libérés automatiquement lorsque tous les descripteurs de fichiers faisant référence à la description de fichier ouverte sont fermés.

Le printf() et fprintf() les appels doivent être remplacés par le write() approprié appels. Les fonctions stdio ne figurent pas dans la liste des fonctions async-signal-safe et sont souvent fortement async-signal-unsafe.

Le abort() call est probablement mieux remplacé en réglant le signal sur l'action par défaut et en le renvoyant à soi-même ; de cette façon, les shells savent que votre programme s'est arrêté à cause du signal et peuvent interrompre les séquences de commandes le cas échéant.


Linux
  1. Comment faire fonctionner les permaliens WordPress dans Nginx

  2. Comment rendre un répertoire partagé accessible par Sftp ?

  3. Comment faire en sorte que Startx utilise Xinitrc alternatif?

  4. Comment faire un VPN

  5. Comment créer et appliquer un patch SVN ?

Comment faire démarrer Raspberry Pi dans l'interface graphique par défaut

Comment créer un GIF dans GIMP [Tutoriel simple]

Comment faire en sorte que Ultracopier manipule la fonction couper-copier-coller dans Nautilus?

Comment créer un site Web sur le panneau de configuration Vesta

Comment faire d'un utilisateur un administrateur dans Debian 11

Comment créer un serveur Minecraft sur des distributions Linux