Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zapis zawartości folderu do pliku.

Ostatnio zmodyfikowano 2017-03-26 13:00
Autor Wiadomość
ManiekB
Temat założony przez niniejszego użytkownika
Zapis zawartości folderu do pliku.
» 2017-03-26 13:00:44
Witam, musze napisać program pod Linuksem który jako argument otrzymuje nazwe pliku, tworzy go(jeśli już istnieje program się kończy), a następnie do tego pliku zapisuje posortowaną(za pomocą funkcji readdir) listę plików znajdujących się w folderze w którym się znajduje. Nie jestem pewien czy dobrze używam funkcji write (void zapisz). Ktoś wie jak to przerobić żeby zapisywało tą listę do pliku?

C/C++
#include <dirent.h>
#include <stdio.h>
#include <sys/file.h>
#include <fcntl.h>

void zapisz( const char * nazwa_sciezki, FILE * fp ) {
    struct dirent * plik;
    DIR * sciezka;
    int filedesc = open( fp, O_WRONLY | O_APPEND );
   
   
    if(( sciezka = opendir( nazwa_sciezki ) ) ) {
        while(( plik = readdir( sciezka ) ) )
       
             write( filedesc, plik->d_name, 1024 );
       
        closedir( sciezka );
    }
}


int main( int argc, char * argv[] )
{
    int plik;
    char * nazwa = argv[ 1 ];
    //const char * pathname = malloc(sizeof(char) * 128);
    unsigned long word;
    const int F_OK = 0;
    int do_odczytu;
    ssize_t czyt;
    FILE * fp = argv[ 1 ];
   
    if( argc == 1 )
    {
        printf( "Nie mozna pobrac nazwy pliku, brak argumentu\n" );
        return 0;
    }
   
   
   
   
    if( !access( argv[ 1 ], F_OK ) ) {
        printf( "Plik o nazwie %s juz istnieje!\n", argv[ 1 ] );
        return 0;
    }
   
   
   
    plik = open( argv[ 1 ], O_RDWR | O_TRUNC | O_CREAT );
    if( plik != - 1 )
         printf( "Tworze plik o nazwie %s\n", argv[ 1 ] );
    else
    {
        printf( "Wystapil blad\n" );
        return 0;
    }
   
   
    zapisz( ".", fp );
   
   
    /*
            printf("Podaj sciezke do katalogu\n");
            scanf("%126s",pathname);
            printf("%s",pathname);
    */
   
   
   
   
    printf( "Zamykam plik!\n" );
    close( plik );
   
    return 0;
}
.
P-159423
« 1 »
  Strona 1 z 1