system call open read write und close

C System Calls open, read write, close zum öffnen, lesen, schreiben und schließen einer Datei.



#include <sys/stat.h>
#include <sys/types.h> // wird von unistd.h benötigt
#include <unistd.h> // enthält read und write
#include <stdio.h> // wird für Linux benötigt
#include <fcntl.h>
#include <errno.h> // für errno
 
 
 
int main( int argc, char *argv[] )
{
  int fd; // FileDescriptor
  int count; // Anzahl der ausgelesenen Zeichen
  ssize_t length = 255; // Pufferlänge
  char buffer[length]; // Speicherung der ausgel. Zeichen
 
  fd = open("datei.txt", O_RDWR); //O_RDONLY, O_WRONLY, O_RDWR
  if( fd < 0 ) // Fehlerbehandlung
    perror("Fehler beim öffnen der Datei"); // Hier wird errno auf != 0 gesetzt
  else
    count = read( fd, buffer, length );
 
  if( count > 0 )
    write(fd, buffer, count);
 
 
  // Buffer ausgeben
  if( errno == 0 ) // Nur ausführen, wenn kein Fehler aufgetreten ist
    for( i=0; i<count; i++ )
      printf("%c", buffer[i]); // %c = character ausgeben
 
 
  close(fd); // Datei schließen
  return 0;
}
 
read()
>>read(fileDeskriptor, buffer, nbytes);<<
Wurde read() nicht korrekt ausgeführt, wird count auf -1 gesetzt. Gleichzeitig wird in der globalen Variable >>errno<< die Fehlernummer gespeichert


write()
>>write(fileDeskriptor, buffer, nbytes);<<
Schreibt die Anzahl >>nBytes<< aus dem Datenbestand >>buffer<< in die geöffnete Datei.


open
>>open(filePath, openMode)<<
Öffnet eine Datei zum lesen und/oder schreiben

>>O_RDONLY<< nur lesen
>>O_WRONLY<< nur schreiben
>>O_RDWR<< lesen und schreiben


close()
>>close(fileDeskriptor)<<
Geöffnete Datei wieder schließen