20 septembre 2004

Signaux à destination des processus Unix

Principaux Signaux (nom numéro signification) :

SIGHUP     1  (hang up): émis aux processus associés à un terminal lorsque celui-ci se déconnecte.
SIGINT     2  (interrupt): signal d'interruption émis aux processus associés à un terminal lorsque le caractère d'interruption (<CTRL-C>) est tapé.
SIGQUIT    3  (quit): signal d'interruption émis aux processus associés à un terminal lorsque le caractère pour quitter une application (<CTRL-\>) est tapé.
SIGILL     4  (illegal) : émis en cas d'instruction illégale.
SIGTRAP    5  (trap) : émis après chaque instruction en cas de traçage de processus.
SIGIOT     6  (input/output trap) : émis en cas d'erreur matérielle.
SIGKILL    9  (kill) : tue un processus, quel que soit son état.
SIGSEGV    11 (segmentation violation) : émis en cas de violation de la segmentation mémoire.
SIGSYS     12 (system) : émis en cas d'erreur de paramètre dans un appel système.
SIGPIPE    13 (pipe) : émis en cas d'écriture sur un tube sans lecteur.
SIGALRM    14 (alarm) : signal associé à une horloge.
SIGTERM    15 (termination) : terminaison normale d'un processus.

14 septembre 2004

Dimensionner les tableaux Cobol suivant le nombre d'occurrences du dictionnaire HR

Dans un contexte de working d'un traitement, il est possible depuis HRDesign 420 (HRv3e) de saisir une ligne de commentaires ayant la forme suivante :
*<NBOCCR>sdci

Ceci aura pour effet :
  • soit de remplacer le %1 présent dans la ligne de working suivante par le nombre d'occurrences maximal de l'information (DI40.NBOCCR) tel que saisi dans le dictionnaire,
  • soit de remplacer la valeur de l'occurs déclaré sur un appel de description d'une information par le nombre d'occurrences maximal de l'information (DI40.NBOCCR) tel que saisi dans le dictionnaire.
Exemple d'utilisation dans un traitement :
*         01    UZZ.
*    *          <NBOCCR>ZYAG
*    E          ZYAGUZZ   020000IT  0 
*    *    02     **** UZZAG ****   
*         01    INDICE-MAX                  PICTURE 9(4)

*    *          <NBOCCR>ZYAG
*                                  VALUE +%1.                           

Mais attention : en cas de une modification dans le dictionnaire de la valeur du nombre d'occurrences maximum, suite à la génération logique, faire une génération physique forcée des programmes des processus impactés, car HR Access ne sait pas gérer la cascade d'impact sur les traitements...

7 septembre 2004

Erreur "ksh: 08+03: bad number" lors de l'interprétation de calculs sous Unix

Sous certains Unix, l'opérateur korn shell qui permet l'interprétation d'un calcul ne fonctionne pas si un des arguments vaut 08 ou 09 (l'interpréteur prend ces valeurs comme étant de l'octal).

> echo $((07+03))
10
> echo $((08+03))
ksh: 08+03: bad number
> echo $((09+03))
ksh: 09+03: bad number

Sauf à lui préciser qu'il s'agit d'un nombre en base 10

> echo $((10#08+03))
11

La suppression du zéro non significatif fait disparaitre le problème.

> echo $((8+03))
11

La commande "bc" - elle - fonctionne dans tous les cas.

> echo "08+03" | bc
11

Demandez au support Unix un patch système (information trouvée sur une documentation de BMC Patrol).