euh la commande cd (en shell) en appels systeme, ça donne quoi?

euh la commande cd (en shell) en appels systeme, ça donne quoi? - Shell/Batch - Programmation

Marsh Posté le 26-10-2002 à 11:28:28    

voila voila, je crois qu'il y a une équivalence avec chdir
mais quelqu'un à l'application complete de cette commande?

Reply

Marsh Posté le 26-10-2002 à 11:28:28   

Reply

Marsh Posté le 26-10-2002 à 11:31:19    

Citation :


CHDIR(2)           Manuel du programmeur Linux           CHDIR(2)
 
NOM
       chdir, fchdir - Changer le répertoire courant.
 
SYNOPSIS
       #include <unistd.h>
 
       int chdir(const char *path);
       int fchdir(int fd);
 
DESCRIPTION
       chdir  remplace  le  répertoire  courant par celui indiqué
       dans le chemin path.
 
       fchdir est identique à chdir, sauf que le répertoire cible
       est fourni sous forme de descripteur de fichier.
 
VALEUR RENVOYÉE
       chdir et fchdir renvoient 0 s'ils réussissent, ou -1 s'ils
       échouent, auquel cas errno contient le code d'erreur.
 
ERREURS
       Suivant le type de système de fichiers, plusieurs  erreurs
       peuvent être renvoyées, les plus courantes pour chdir sont
       les suivantes :
 
       EFAULT  path pointe  en  dehors  de  l'espace  d'adressage
               accessible.
 
       ENAMETOOLONG
               path est trop long.
 
       ENOENT  Le fichier n'existe pas.
 
       ENOMEM  Pas assez de mémoire pour le noyau.
 
       ENOTDIR Un  élément  du chemin d'accès n'est pas un réper­
               toire.
 
       EACCES  L'accès n'est  pas  autorisé  sur  un  élément  du
               chemin.
 
       ELOOP   path   contient   des  références  circulaires  (à
               travers un lien symbolique) EIO  Erreur  générique
               d'entrée/sortie.
 
       Les erreurs courantes pour fchdir sont :
 
       EBADF   fd n'est pas un descripteur de fichier valide.
 
       EACCES  Le répertoire ouvert sur fd n'autorise pas le par­
               cours.
 
CONFORMITÉ
       L'appel système chdir  est  compatible  avec  SVr4,  SVID,
       POSIX,  X/OPEN,  et  4.4BSD.   SVr4  décrit les conditions
       d'erreur supplémentaires EINTR, ENOLINK, et EMULTIHOP mais
       n'a pas d'erreur ENOMEM.  POSIX.1 ne contient pas d'erreur
       ENOMEM ni ELOOP.  X/OPEN ne decrit pas les erreurs EFAULT,
       ENOMEM ni EIO.
 
       L'appel système fchdir est compatible avec SVr4, 4.4BSD et
       X/OPEN.  SVr4 ajoute les conditions d'erreur  EIO,  EINTR,
       et ENOLINK.  X/OPEN ajoute EINTR et EIO.
 
VOIR AUSSI
       getcwd(3), chroot(2)
 
TRADUCTION
       Christophe Blaess, 1997.
 
Linux 2.0.30             10 Décembre 1997                       1

Reply

Marsh Posté le 26-10-2002 à 11:34:26    

ah déjà merci beaucoup :-)  
quelqu'un aurait déjà reprogrammer la commande cd?

Reply

Marsh Posté le 26-10-2002 à 12:01:24    

ddpforman a écrit a écrit :

ah déjà merci beaucoup :-)  
quelqu'un aurait déjà reprogrammer la commande cd?




Spas possible, c'est une commande interne au shell.

Reply

Marsh Posté le 26-10-2002 à 12:17:54    

non, la commande cd utilise "chdir"

Reply

Marsh Posté le 26-10-2002 à 12:18:12    

et "chdir" est un appel systeme alors que "cd" non

Reply

Marsh Posté le 26-10-2002 à 12:28:24    

ddpforman a écrit a écrit :

non, la commande cd utilise "chdir"




 
Sauf que cd est pas un programme externe, mais une fonction du shell. Un cd dans le shell va changer le répertoire du process courant (ie le schell). Si c'est dans un programme externe, tu va changer le répertoire courant du programme, mais pas du shell qui a lancé ce programme, ce qui fait une belle jambe ;)

Reply

Marsh Posté le 26-10-2002 à 12:40:19    

ah oui et donc, y'a moyen de trouver l'implementation de cd avec chdir?

Reply

Marsh Posté le 26-10-2002 à 12:46:15    

ddpforman a écrit a écrit :

ah oui et donc, y'a moyen de trouver l'implementation de cd avec chdir?




 
Dans bash 2.05b, fichier builtins/cd.def, fonction  
 

Code :
  1. static int
  2. change_to_directory (newdir, nolinks)
  3.      char *newdir;
  4.      int nolinks;


 
Mais cd fonctionne parceque on ne change pas de process courant.

Reply

Marsh Posté le 26-10-2002 à 13:10:15    

moi je recherche sous linux et avec le shell

Reply

Marsh Posté le 26-10-2002 à 13:10:15   

Reply

Marsh Posté le 26-10-2002 à 13:12:48    

ddpforman a écrit a écrit :

moi je recherche sous linux et avec le shell




et il vient de te doner quoi, la ?

Reply

Marsh Posté le 26-10-2002 à 14:08:31    

kadreg a écrit a écrit :

 
 
Dans bash 2.05b, fichier builtins/cd.def, fonction  
 

Code :
  1. static int
  2. change_to_directory (newdir, nolinks)
  3.      char *newdir;
  4.      int nolinks;


 
Mais cd fonctionne parceque on ne change pas de process courant.




 
euh c'est sous linux bash 2.05b...?
excusez moi, je ne suis pas trés fort c pour ça que je demande de l'aide...
donc c le répertoire builtins?

Reply

Marsh Posté le 26-10-2002 à 14:42:42    

help

Reply

Marsh Posté le 26-10-2002 à 14:48:13    

On va faire autrement. Pose la question telle qu'elle est écrite dans ton devoir, en disant c'est un devoir de quoi.

Reply

Marsh Posté le 26-10-2002 à 15:05:08    

non, c'est un projet à faire
et je dois reprogrammer un shell  
et je bloque sur le cd
il a dit qu'on devait reutiliser chdir

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed