Bonjour,

j'ai une fonction toute simple, composé d'un main prenant en argument le nom d'un fichier et une fonction system("dir") pour afficher le contenu d'un dossier sous windows.

Le but étant d'afficher dans un premier temps le contenu du fichier, puis d'afficher le contenu du dossier.

Le fichier a ouvrir est dans le dossier courant.

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
16
17
18
19
20
21
22
23
24
25
26
 
#include <stdio.h>
#include <stdlib.h>
 
#define BUF_SIZE 256
 
int main(int argc, char **argv)
{
    char buffer[BUF_SIZE];
 
    printf("L'argument est %s\n", argv[1]);
 
    FILE *f;
    f = fopen(argv[1], "r");
    while(fgets(buffer, BUF_SIZE, f) != NULL)
    {
        printf("%s", buffer);
    }
    fclose(f);
 
    printf("\n================\n\n");
	system("dir");
 
	system("pause");
	return 0;
}
Le probleme est que lors de l'appel de la fonction system pour faire un "dir", ne s'affiche plus le contenu du dossier courant, mais du dossier personnel, c'est a dire C:\Documents and Settings\Dossier Utilisateur\

A noté que si je vire la partie pour ouvrir mon fichier en argument, la commande affiche bien le contenu du dossier courant. Le probleme n'apparait donc que lorsque j'ouvre le fichier en argument.

Comment faire pour que la commande m'affiche le contenu du dossier courant ?