2010-05-01 5 views
2

J'inspectais le code d'une application Linux et j'ai vu le #include dans l'un des fichiers de code. J'ai essayé de le rechercher sur opengroup.org mais je ne l'ai pas trouvé là-bas, voici à quoi ressemble le répertoire sys: http://www.opengroup.org/onlinepubs/000095399/basedefs/sys/. Je suppose que ce n'est pas un fichier d'en-tête standard, mais je l'ai vérifié dans mon/usr/include/sys et il était là.À quoi sert sys/user.h?

Que fait-il et dans quel cas est-il utilisé? Si vous pouvez me fournir un manuel pour cela, je serais reconnaissant. Merci.

Répondre

2

Le commentaire en haut de l'en-tête à peu près dit tout:

#ifndef _SYS_USER_H 
#define _SYS_USER_H  1 

/* The whole purpose of this file is for GDB and GDB only. Don't read 
    too much into it. Don't use it for anything other than GDB unless 
    you know what you are doing. */ 

GNU extensions spécifiques sont habituellement assez facile à identifier (par exemple _GNU_SOURCE). Cependant, le débogage et l'instrumentation doivent fonctionner même si ces extensions ne sont pas activées. Par exemple, les gens veulent utiliser GDB sur un code qui ne correspond pas #define _GNU_SOURCE.

Dans ce cas, les éléments non définis dans ISO C (et non requis par POSIX) sont généralement clairement étiquetés comme tels.

Vous trouverez également toutes sortes de symboles d'apparence étrange dans les programmes qui incluent les en-têtes Valgrind.