IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Je n'arrive pas à faire des boucles dans un répertoire


Sujet :

Linux

  1. #1
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut Je n'arrive pas à faire des boucles dans un répertoire
    Voilà je dois réaliser un prog:
    Il faut que je le lance avec en parametre le nom d'un fichier. Seulement il faut que le programme reconnaise si c'est un fichier, un répertoire ou un lien symbolique. J'ai commencé à taper le prog et voilà ce que sa donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    int main (char* argv)
    {
      struct stat buff;
      stat (argv[1], &buff);
      if (S_ISREG(buff.st_mode))
        {
          printf ("taile %d,Uid proprietaire %d, GID proprietaire %d ", buff.off_t buff.uid_t buff.gid_t);
        }
      else
        {
          if(S_ISDIR((buff.st_mode))

    Pouvez vous me dire comment faire? j'ai jusqu'a 17h50 pour le faire!!
    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Points : 848
    Points
    848
    Par défaut
    Il faut que tu fasses un appel systeme sur un "ls -l" avec peut-être une fonction spécifique en C (je sais pas si ça peut pas se fairer direct...) et tu regardes chaque ligne si les permissions contiennent drxw... ou -rxw...
    Voilà ce que j'en pense.

    Espérant t'avoir aidé

  3. #3
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut
    tu peux me montrer ce que sa fait en code stp?
    (je suis débutant moi mon truc normalement c le C#)

  4. #4
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut
    Pitié aidez moi c super important!!!

  5. #5
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par padodanle51
    Voilà je dois réaliser un prog:
    Il faut que je le lance avec en parametre le nom d'un fichier. Seulement il faut que le programme reconnaise si c'est un fichier, un répertoire ou un lien symbolique. J'ai commencé à taper le prog et voilà ce que sa donne

    ...

    Pouvez vous me dire comment faire? j'ai jusqu'a 17h50 pour le faire!!
    Il est 17h50 passé ... c'est l'heure des corrections

    La lecture des paramètres de argv est loin d'être un exemple de rigueur, mais passons ...

    stat est bien la fonction à utiliser pour ce que tu veux faire ... Le manuel est disponible ICI.

    Par contre, ton analyse du retour de stat (dans buff) n'est pas franchement dans le style C. Les attributs d'un champ, en C, n'ont rien à voir avec les constructions objets du C#

    Ainsi, pour tester la présence d'un attribut, on effectue généralement un test au moyen d'une opération de masquage bit-à-bit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (buff.st_mode & S_ISREG)
        {
          printf ("taile %d,Uid proprietaire %d, GID proprietaire %d ", buff.off_t buff.uid_t buff.gid_t);
        }
    Bon courage pour la suite ...

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/11/2010, 21h29
  2. [MySQL] je n'arrive pas a valider des sites dans le phpadmin
    Par maya24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/09/2007, 18h48
  3. Je n'arrive pas a faire un controle dans un calcul javascript
    Par carmen256 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 13/07/2006, 10h42
  4. Réponses: 6
    Dernier message: 18/04/2006, 13h11
  5. [réplication]N'arrive pas à le faire marcher!!!!
    Par mohamed dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/03/2006, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo