Hallo an alle.
Im Rahmen einer Übung versuche ich einen readv() Unix/Linux-Systemcall in einem C-Programm abzusetzen. Folgender Code:
**#include „stdio.h“
#include „sys/types.h“
#include „sys/stat.h“
#include „sys/uio.h“
#include „fcntl.h“
#include „string.h“
int main(){
struct iovec iov[2];
int nr, fd, i;
char *buff[2];
fd=open(„ler.txt“,O_RDONLY);
for(i=0;i
Der readv() Aufruf meldet „-1“ zurück. Scheitert also. Ich verstehe den Grund nicht.
Wenn mein Verständniss für diesen Systemcall richtig ist, dann muss ein Vector spezifiziert werden. Das tue ich in der FOR-Schleife.
Der funktionierende writev() Aufruf sieht so aus:
int main(){
struct iovec iov[5];
int nr, fd, i;
char* buf[]={
„There was a young lady named Bright\n“,
„Her speed was faster than light\n“,
„She went out one day\n“,
„In a relative way\n“,
„And returned the previous night\n“};
fd=open(„rel.txt“,O_WRONLY|O_CREAT|O_TRUNC,0644);
for(i=0;i
Bin für jede Hilfe dankbar!**