Hi!
Da ich es immer besser finde, Low-Level-Funktionen zu benutzen, aber sehr viele System-Programmierer einfach auf die portablen/leichten High-Level-Funtkionen benutzen, habe ich mir gedacht ich poste das einfach mal.
Ich bin mir völlig im Klaren, dass die Meisten hier wissen, wie man mit UNIX und Low-Level-Funktionen umgeht, möchte hiermit einfach nur meinen Respekt an das HaBo zeigen.
Ein Beispiel, wie man mit den Low-Level Funktionen von UNIX auf Dateien zugreift.
Da ich es immer besser finde, Low-Level-Funktionen zu benutzen, aber sehr viele System-Programmierer einfach auf die portablen/leichten High-Level-Funtkionen benutzen, habe ich mir gedacht ich poste das einfach mal.
Ich bin mir völlig im Klaren, dass die Meisten hier wissen, wie man mit UNIX und Low-Level-Funktionen umgeht, möchte hiermit einfach nur meinen Respekt an das HaBo zeigen.
Ein Beispiel, wie man mit den Low-Level Funktionen von UNIX auf Dateien zugreift.
Code:
/*Programm, welches das Verwenden der Funktion*/
/* write() erläutert.*/
/*Geschrieben von tcr am 21/05/2005*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
int main(int argc, char **argv)
{
ssize_t size;
int fd;
char *str;
umask(0);
if(argc < 2)
{
fprintf(stderr, "Benutzung: %s datei_zum_Öffnen\n", *argv);
return EXIT_FAILURE;
}
if(argc < 3)
{
str = "Keine Angaben gemacht\n";
}
else
str = argv[2];
size = strlen(str);
/*---------------------------------------------------------------------
Neue datei erzeugen O_CREAT
zum Schreiben O_WRONLY
Daten am Ende hinzufügen O_APPEND
Zugriffsrechte für dir Datei erteilen modus
---------------------------------------------------------------------*/
fd = open(argv[1], O_WRONLY | O_APPEND | O_CREAT, 0755);
if(fd == -1)
{
perror("Fehler bei open()");
return EXIT_FAILURE;
}
if(write(fd, str, size) != size)
{
perror("Fehler bei write()");
}
return EXIT_SUCCESS;
}