Sous-routine getevars
Objectif
Obtient l'environnement d'un processus.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
#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.
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. |