Czytanie pliku w C (UNIX)

0

Mam problem (uczę się dopiero 1 dzień) ;) z napisaniem programu, który by wypisywał zawartość otwartego pliku na ekran w** C (ale UNIX, nie mogę więc użyć fopen, tylko open itp).**

Mój kod :

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    char *filename = "/etc/group";
    int file_descriptor, bytes_read, buffsize = 512;
    char *buffer;

    if ((file_descriptor = open(filename, O_RDONLY)) == -1)
    {
        fprintf(stderr, "Cannot open %s.\n", filename);
        exit(1);
    }

    for(;;)
    {
        bytes_read = read (file_descriptor, buffer, buffsize);
        if (bytes_read>0)
        printf("%d bytes read from /etc/group.\n", bytes_read);
     else{
        if (bytes_read==0){
          printf("End of file /etc/group reached\n");
          close(file_descriptor);
          break;
        }
        else if (bytes_read == -1){
          perror("Reading /etc/group");
          exit(1);
        }
     }
    }
    return 0;
}

daje mi błąd:

Reading /etc/group Bad addres - chociaż taki plik mam :( Jak odczytać jego zawartość? Czy jest gdzieś jakaś strona z przykładami C dla Unixa?

0

A skąd się tego C uczysz? W/g wikipedii i książki "język C. Szkoła programowania" z powodzeniem możesz używać funkcji fopen, fclose na unixie (swoją drogą, C był tworzony na potrzeby unixa, czemu więc na unixie miałaby nie działać biblioteka standardowa?). Jak już dojdziesz do wniosku, że możesz używać standardowej biblioteki C na Unixie to problem stanie się prosty do rozwiązania.

0

Chyba wiem, co piszę ... -.- na zajęciach powiedzieli, że NIE MOŻEMY korzystać z fopen, fread ...

0

nie możesz na unixie, czy nie możesz bo prowadzący sobie tak zażyczył...

0

Prowadzący tak chciał, to nie mój wymysł. Specjalnie instalowałem Ubuntu, żeby mieć te funkcje systemowe, dlatego użycie fopen, fclose itd mnie nie satysfakcjonuje.

2
char *buffer;

Jak myślisz, na co wskazuje buffer?
Powinno być raczej

char buffer[512];

1 użytkowników online, w tym zalogowanych: 0, gości: 1