Also schreibe ich eine Funktion, die aus einer Datei liest und die Bytes in einen Temp-Puffer legt. Schreibt es dann in den Parameterpuffer bei einem Offset.C-Funktion lesen
Ich verstehe möglicherweise lesen falsch, aber ich möchte lesen, jedes Mal, wenn die Funktion aufgerufen wird, sollte die nächste "Größe" von Bytes in der Datei gelesen werden. Aber es liest jedesmal die gleichen 1024 Bytes. Ich habe das Gefühl, das liegt am Umfang, wie repariere ich oder muss ich einen Offset setzen?
Gibt es auch eine Möglichkeit zu überprüfen, wie viele Zeichen gelesen wurden, wenn Lese EOF erreicht?
int addChunk(char* buffer, int size, int index){
char buf[size + 1];
int fdIn, cnt, i;
//int count = 0;
if (argcG < 2) {
fdIn = 0;
}
else if ((fdIn = open(sString, O_RDONLY)) < 0) {
fprintf(stderr, "file open: %s\n", sString);
exit(1);
}
cnt = read(fdIn, buf, size);
if(cnt == 0){
buf[size] == '\0';
close(fdIn);
}
// if (fdIn > 0){
//??
//}
for(int i = 0; i < ((cnt == 0)? size : cnt); i++){
if(buf[i] == '\0'){
break;
}
printf("%02X",buf[i]);
}
printf("\n");
/* for(int i = (index * size) - 1; i < size; i++){
buffer[i] = buf[j];
j++;
}
*/
printf("Counted %d bytes \n", cnt);
return cnt;
}
Jedes Mal, wenn Sie die Datei öffnen, wird der Dateizeiger zurückgesetzt. – usr2564301
.. Ah - was soll 'index' anzeigen? "Die nächste Position eines' size' Blocks zum Lesen "? – usr2564301