Connaissances Informatiques >> systèmes >> Unix >> Content
  Derniers articles
  • Que sont les commandes DOS internes …
  • Qu'est-ce qu'un onglet de commande ?…
  • Quel code Linux utilise-t-il? 
  • Comment écrire un script sous Unix 
  • Un tutoriel pour le montage dans Uni…
  • Comment faire pour créer une disque…
  • Quelles sont les trois catégories d…
  • Quelle commande un utilisateur devra…
  • Comment décompresser les fichiers c…
  • Comment trouver un domaine dans Unix…
  •   Unix
  • Compétences informatiques de base

  • Linux

  • Mac OS

  • Ubuntu

  • Unix

  • fenêtres

  • windows Vista

  • windows XP

  • Windows 7

  • Windows 10

  • Windows 11

  • Windows 2012

  • Windows 2016

  • Windows 2019

  • Windows 2022

  • Apple

  • Android

  • iOS

  • CentOS
  •  
    Unix

    Écrire un programme pour trouver tous les signaux bloqués du processus dans la programmation Unix ?

    Ce programme utilise la fonction `sigprocmask` pour obtenir le masque de signal actuel d'un processus. Le masque de signal représente l'ensemble des signaux actuellement bloqués. Il parcourt ensuite les signaux et imprime ceux qui sont bloqués.

    ```c

    #include

    #include

    int main() {

    sigset_t bloqué_signaux ;

    int je;

    // Récupère l'ensemble actuel des signaux bloqués

    if (sigprocmask(0, NULL, &blocked_signals) ==-1) {

    perror("sigprocmask");

    renvoyer 1 ;

    }

    printf("Signaux bloqués :\n");

    for (i =1; i )

    if (sigismember(&blocked_signals, i)) {

    //Vérifie si le signal est bloqué. sigismember renvoie 1 s'il est membre de l'ensemble

    printf(" Signal %d (%s)\n", i, strsignal(i)); //strsignal convertit le numéro de signal en chaîne

    //Si strsignal ne fonctionne pas (certains systèmes peuvent ne pas le prendre en charge), vous pouvez utiliser une table de recherche

    //ou imprime manuellement le numéro du signal.

    }

    }

    renvoie 0 ;

    }

    ```

    Pour compiler et exécuter ce code :

    1. Enregistrer : Enregistrez le code sous un fichier « .c » (par exemple, « blocked_signals.c »).

    2. Compiler : Utilisez un compilateur C (comme GCC) pour compiler le code :

    ```bash

    gcc bloqué_signaux.c -o bloqué_signaux

    ```

    3. Exécuter : Exécutez le programme compilé :

    ```bash

    ./signaux_bloqués

    ```

    La sortie listera les numéros de signal et leurs noms (si disponibles via `strsignal`) qui sont actuellement bloqués pour le processus. Notez que l'ensemble des signaux bloqués dépendra de l'état actuel du processus et de toute configuration de gestion des signaux.

    Considérations importantes :

    * Gestion des erreurs : Le code inclut la gestion des erreurs de base pour « sigprocmask ». Les applications robustes devraient ajouter des contrôles d'erreurs plus complets.

    * Noms des signaux : Il n'est pas garanti que la fonction `strsignal` soit disponible sur tous les systèmes ni qu'elle fournisse des noms pour tous les signaux. Vous devrez peut-être gérer les cas où il renvoie NULL ou utiliser une table de recherche personnalisée pour mapper les numéros de signal aux noms.

    * Numéros de signaux : La plage de numéros de signal (« NSIG ») dépend du système. Il est généralement défini dans ``.

    * Privilèges : Obtenir des informations sur les signaux peut nécessiter des privilèges spécifiques (par exemple, exécuter en tant que root). Si vous rencontrez des erreurs d’autorisation, cela peut en être la cause.

    N'oubliez pas de consulter la documentation de votre système pour plus de détails sur la gestion des signaux et les signaux spécifiques disponibles. Le comportement et la disponibilité des fonctions liées aux signaux peuvent différer légèrement selon les systèmes d'exploitation de type Unix (Linux, macOS, BSD, etc.).

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Qu’est-ce que grep sous Unix ? 
  • Unix Mémoire partagée Tutorial 
  • À quoi sert la commande supérieure utilisée dans Linux? 
  • Qu’est-ce que la sève élaborée ? 
  • Unix Patch Tutoriel 
  • Comment accéder UNIX information sur les sites Web sur un PC 
  • Quelle commande affiche les 10 dernières lignes du fichier appelé abc ? 
  • Comment verrouiller un dossier de groupe dans Unix 
  • Pourquoi UNIX est un système d’exploitation basé sur des commandes ? 
  • Quelle gamme de systèmes d'exploitation s'est récemment rapprochée davantage d'Unix ? 
  • Connaissances Informatiques © http://www.ordinateur.cc