| Titel: | system call open read write und close | |
| Beschreibung: | C System Calls open, read write, close zum öffnen, lesen, schreiben und schließen einer Datei. | |
| Kategorie: | Programmierung | |
| Unterkategorie | C/C++ | |
| Benötigtes Fachwissen: | Fortgeschrittene Anfänger | |
| Artikel überarbeiten: | system call open read write und close | |
#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(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
siehe auch:
Pipe zwischen zwei Prozessen