2009-10-07 8 views

Répondre

3

Le "</dev/null" bit est au niveau de la coque et non spécifique à gcc

< defines input file 
> defines ouput file for std out, 
>> defines a output for std out that will be appended to, 
| sends std out output to another process on it's std in 

J'oublie la syntaxe mais vous pouvez également spécifier aswell err std comme & 2>

Le nom après les parenthèses est le nom d'un fichier, où/dev/null est un fichier vide

man sh devrait vous aider à résoudre ces questions.

Ne pas avoir accès à gcc au moment, en supposant d'autres commentaires que - est en train de lire dans std, alors et déclaration equivelant est

gcc -E -dM /dev/null 
+0

Cela ne fonctionne pas car GCC regarde le nom de fichier '/ dev/null', et dit" n'a pas d'extension '.c', donc je ne vais pas le pré-traiter". – ephemient

+0

@ ephemient: Non./Dev/null est un périphérique spécial qui agit comme un fichier et n'est pas lu en tant que fichier. Les moyens

+1

@Martin: Je parle de la fin de la réponse de Greg, en ce qui concerne la commande 'gcc -E -dM/dev/null': cela ne fonctionne pas. Si vous ne laissez pas GCC connaître le nom de fichier, en utilisant 'gcc -E -dM - ephemient

14

Cela donne une liste de toutes les macros prédéfinies dans gcc. -E signifie exécuter le préprocesseur. -dM signifie vider les macros prédéfinies du préprocesseur. Le - est pour la lecture de l'entrée standard et/dev/null juste des flux dans un fichier source vide.

Questions connexes