Question

Je suis en train d'écrire un programme en c sous linux.Des commandes comme execv() nécessite un chemin d'accès sous la forme d'une chaîne c.Est-il une commande qui retourne le chemin d'accès dans la forme d'une chaîne de style?

Était-ce utile?

La solution

getcwd():

SYNOPSIS

#include <unistd.h>

char *getcwd(char *buf, size_t size);

DESCRIPTION

L' getcwd() la fonction doit mettre un chemin absolu du répertoire de travail actuel dans le tableau pointé par buf, et le retour de buf.Le chemin d'accès copié dans le tableau contient pas de composants qui sont des liens symboliques.L' taille argument est la taille en octets du tableau de caractères pointée par le buf argument.Si buf est un pointeur null, le comportement de getcwd() n'est pas spécifié.

VALEUR DE RETOUR

Après la réussite, getcwd() retourne le buf argument.Sinon, getcwd() doit retourner un pointeur null et définir errno pour indiquer l'erreur.Le contenu du tableau pointé par buf sont ensuite undefined....

Autres conseils

L' chemin argument pour execv() est le chemin d'accès de l'application que vous souhaitez exécuter, et non pas le répertoire de travail actuel (qui sera retourné par getcwd()) ou la coquille chemin de recherche (qui sera retournée par la fonction getenv("CHEMIN")).

En fonction de ce que vous faites, vous pouvez obtenir plus de kilométrage de la fonction system() de la bibliothèque C plutôt que dans le bas-niveau de la famille exec ().

C'est pas ANSI C:

#include <unistd.h>

char path[MAXPATHLEN];
getcwd(path, MAXPATHLEN);
printf("pwd -> %s\n", path);

Si le chemin peut être un chemin relatif, vous devriez être en mesure d'utiliser '.' ou './' comme le chemin d'accès.Je ne suis pas sûr si cela va fonctionner, mais vous pouvez essayer.

Je ne suis pas un programmeur professionnel donc ce n'est pas une réponse exacte.

Ce que vous devez faire est de saisir la variable d'environnement PWD (présent répertoire de travail)

Je ne suis pas sûr de ce que la bibliothèque c'est, mais c'est un standard de linux-tête.

Je vais regarder autour et voir si je peux le trouver.

edit:

J'étais en train de penser ,la fonction getenv() ce qui serait utile si vous devez également exécuter des commandes système et ont besoin les différents bin chemins situés dans le CHEMIN d'accès

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top