Sous-routine getevars

Objectif

Obtient l'environnement d'un processus.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

#include <procinfo.h>
#include <sys/types.h>

int getevars (processBuffer, bufferLen, argsBuffer, argsLen)
struct procsinfo  *processBuffer
or struct procentry64  *processBuffer;
int  bufferLen;
char  *argsBuffer;
int  argsLen;

Descriptif

La sous-routine getevars renvoie l'environnement qui a été transmis à une commande lors de son démarrage. Un seul processus peut être examiné par appel à getevars.

La sous-routine getevars utilise la zone pi_pid de processBuffer pour déterminer le processus à rechercher. bufferLen doit être défini sur la taille de struct procsinfo ou struct procentry64. Les paramètres sont renvoyés dans argsBuffer, qui doit être alloué par l'appelant. La taille de ce tableau doit être indiquée dans argsLen.

Au retour, argsBuffer se compose d'une succession de chaînes, chacune terminée par un caractère null (ascii ` \0'). Par conséquent, deuxNULLs indiquent la fin de la liste.

Remarque: Les arguments peuvent être modifiés de manière asynchrone par le processus, mais la cohérence des résultats n'est pas garantie.

Paramètres

processBuffer
Indique l'adresse d'une structure procsinfo ou procentry64 , dont la zone pi_pid doit contenir le PID du processus à rechercher.
bufferLen
Indique la taille d'une structure procsinfo ou procentry64 unique.
argsBuffer
Indique l'adresse d'un tableau de caractères à remplir avec une série de chaînes représentant les paramètres nécessaires. Un supplémentNULLmarque la fin de la liste. Ce tableau doit être alloué par l'appelant.
argsLen
Indique la taille de la grappe argsBuffer . Un maximum de argsLen caractères sont renvoyés.

Valeurs renvoyées

En cas de réussite, la sous-routine getevars renvoie zéro. Dans le cas contraire, la valeur -1 est renvoyée et la variable globale errno est définie pour indiquer l'erreur.

Codes d'erreur

La sous-routine getevars n'aboutit pas si les conditions suivantes sont remplies:

Article Descriptif
ESRCH Le processus spécifié n'existe pas.
EFAULT L'opération de copie dans la mémoire tampon a échoué ou les paramètres processBuffer ou argsBuffer ne sont pas valides.
EINVAL Le paramètre bufferLen ne contient pas la taille d'une structure procsinfo ou procentry64 unique.
ENOMEM Aucune mémoire n'est disponible dans l'espace adresse.