Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[C] Programme d'affichage des éléments de répertoire(s)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Animatrix
Guru
Guru


Joined: 13 May 2006
Posts: 480
Location: France - Gard (30)

PostPosted: Sat Sep 27, 2008 3:09 pm    Post subject: [C] Programme d'affichage des éléments de répertoire(s) Reply with quote

Salut à tous !!

Je dois faire un petit programme qui affiche les éléments d'un dossier en C (comme ls).
Le problème c'est que le premier répertoire que je lui donne en paramètre m'affiche les fichiers - 1.

Pour le deuxième aucun soucis, mais le 3ème a un comportement parfois étrange (affichage des éléments du 2nd).

J'ai lu de nombreuses fois mon code et je n'arrive pas à voir où se situe le problème.

Le voici : http://pastebin.com/m30d082ce

Merci de m'éclairer sur mon problème, car c'est embetant de pas trouver où est l'erreur.

Edit : correction d'une erreur dans le code, mais tjrs le même problème


Last edited by Animatrix on Sat Sep 27, 2008 4:40 pm; edited 1 time in total
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 7898
Location: ~Brussels - Belgique

PostPosted: Sat Sep 27, 2008 4:29 pm    Post subject: Reply with quote

Quel es le rapport avec Gentoo ? C'est un devoir à faire ? :wink:
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
Animatrix
Guru
Guru


Joined: 13 May 2006
Posts: 480
Location: France - Gard (30)

PostPosted: Sat Sep 27, 2008 4:37 pm    Post subject: Reply with quote

XavierMiller wrote:
Quel es le rapport avec Gentoo ? C'est un devoir à faire ? :wink:
C'est de la programmation, et réalisée sous Gentoo, lol
Oui, c'est un devoir à rendre.
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2885
Location: Grenoble, France

PostPosted: Sun Sep 28, 2008 9:49 am    Post subject: Reply with quote

Code:
#include <stdlib.h>
#include <string.h>

int main(int argv, char* argc[])
{
        char s[255];
        s[0]='\0';
        strcat(s,"ls ");
        strcat(s,argc[1]);
        system(s);
        return 0;
}

Bon d'accord, je sors...

PS: ouais je sais c'est certainement très crade, et un argument malicieux du genre "~;rm *" pourrait faire bobo, mais bon c'est une blague à la con
Back to top
View user's profile Send private message
bi3l
Apprentice
Apprentice


Joined: 06 Feb 2003
Posts: 268
Location: France

PostPosted: Sun Sep 28, 2008 12:04 pm    Post subject: Reply with quote

Essaie en allouant strlen (repertoire->d_name) + 1 (strlen donne la taille d'une chaine sans compter le \0 final, alors que strcpy copie aussi le \0 final).

EDIT: Comme tu ne testes pas si rep est NULL , tu risques de faire un readdir (NULL) si le répertoire passé en paramètres n'existe pas. Tu ne libères pas la mémoire allouée pour ton tableau.
Back to top
View user's profile Send private message
Animatrix
Guru
Guru


Joined: 13 May 2006
Posts: 480
Location: France - Gard (30)

PostPosted: Sun Sep 28, 2008 12:48 pm    Post subject: Reply with quote

bi3l wrote:
Essaie en allouant strlen (repertoire->d_name) + 1 (strlen donne la taille d'une chaine sans compter le \0 final, alors que strcpy copie aussi le \0 final).

EDIT: Comme tu ne testes pas si rep est NULL , tu risques de faire un readdir (NULL) si le répertoire passé en paramètres n'existe pas. Tu ne libères pas la mémoire allouée pour ton tableau.
Merci c'était bien la mon erreur.
Egalement pour le NULL, que je ne testais pas réellement
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum