2010-10-12 3 views
0

Cela a été tronçon. J'ai écrit un programme shell en C qui permet à l'utilisateur d'exécuter plusieurs commandes. Basé sur mes recherches jusqu'ici, toutes les commandes telles que "ls" et "chat" se trouvent dans "/ bin /".UNIX: Emplacement physique de la commande "wc". Ce n'est pas "/ bin"

Le "wc" n'est pas répertorié dans ce répertoire - "/ bin". Si je lance un terminal, je peux taper "wc fileName" et cela fonctionne. J'ai couru "trouver. Wc" du répertoire "/", et je ne trouve toujours pas la commande "wc".

Est-ce que quelqu'un sait où "wc" se cache?

+1

Je veux juste faire remarquer que la bonne ligne de commande 'find' aurait été' find/-name wc' – Martin

Répondre

6

Essayez de taper which wc dans votre shell ... qui devrait vous dire où il se trouve.

Sur ma machine, est en /bin/. Toutefois, si vous voulez simplement que la résolution de chemin soit effectuée par vous-même, vous pouvez utiliser la fonction system() (voir man 3 system pour plus d'informations). Comme vous pouvez le voir dans la documentation, c'est vraiment la même chose que d'appeler le shell Bourne (ou n'importe quel lien symbolique pour cela) pour la résolution du chemin, donc si vous ne voulez pas cette surcharge, vous voudrez rester avec n'importe quelle méthode vous utilisez actuellement

1

J'ai essayé whereis wc et je reçois dans /usr/bin/wc

+0

Merci. J'ai obtenu le même résultat juste maintenant. – learning

0

Si vous ne voulez pas à vous soucier de savoir où sont les services publics individuels, mais vous ne voulez éviter les frais généraux impliqués dans l'appel system, alors vous devriez essayer au milieu -level execvp, ou l'un de ses amis (également indiqué sur cette page). Malheureusement, il n'y a pas de execvpe.

0

Vous pouvez essayer whence, which ou whereis pour trouver un programme dans votre chemin d'accès, selon le shell que vous utilisez.

Des utilitaires comme wc sont généralement situés dans /bin ou /usr/bin, ou dans des endroits comme /usr/local/bin ou /usr/site/bin.