Zapis zawartości folderu do pliku.
Ostatnio zmodyfikowano 2017-03-26 13:00
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? #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 ]; 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( "Zamykam plik!\n" ); close( plik ); return 0; }
. |
|
« 1 » |