| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: UNIX Low-Level I/O im Forum Code Kitchen, in der Kategorie Software Home; Anzeige 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 ...
![]() |
| | #1 (permalink) |
| Registriert seit: 27.01.05 ![]() Likes: 0 | Anzeige 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. 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;
} |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 03.10.01 ![]() Likes: 1 | Ok, sehr hübsch. ![]() Mach ruhig weiter in C unter *nix, da kann man viel lernen. nachtrag: du wirst, wenn du dein programm testest, unter umständen feststellen, dass die rechte nicht korrekt gesetzt wurden. schau dir mal die umask man page an! |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Aufbau von DES(UNIX) und MD5(UNIX) | tr!-X | Cryptography & Encryption | 1 | 25.08.09 13:35 |
| (Genaue) Unterschiede zwischen UNIX und Unix-Derivaten (zB Linux) | acdc | Linux/UNIX | 3 | 19.03.09 10:44 |
| Unix > alt | acdc | Linux/UNIX | 2 | 25.10.07 22:43 |
| was für ein Unix | eriksn | Linux/UNIX | 16 | 04.12.04 12:36 |
| level 4 | 7wim4 | Off topic-Zone | 6 | 23.07.04 20:35 |