Mir wurde ein Programm zum Schreiben zugewiesen, das Dateisystemaufrufe verwendet, um ein Befehlszeilenargument zu übernehmen (unter der Annahme, dass Sie eine Textdateiadresse übergeben) und den Inhalt der Datei zurückgibt. Ich habe diesen Code bisher, aber ich kann nicht herausfinden, warum mein Compiler mir Fehler bei der Erkennung der als Argument übergebenen Textdatei gibt, zusammen mit dem Ausdruck der Informationen, die ich von der Datei erhalten habe. Jede Art von Hilfe/Hilfe wird sehr geschätzt.ein Programm, das ein Befehlszeilenargument akzeptiert und den Inhalt der Datei an den Standardausgang ausgibt.
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
int main(int argc, char *argv[]){
int FP;
ssize_t bytes;
char buffer [100];
if(argc == 1){
FP = open(argv[1], O_RDONLY);
printf("Program name is : %s", argv[0])
bytes = read(FP, buffer,sizeof(buffer) -1);
printf("%s", bytes);
close(FP);
}
return 0;
}
Was die Fehlermeldung? – PhillipD
@PhillipD id Status 1 Dateiformat auch nur meine vorherige Version nicht erkannt wurde Rückkehr -1 und nicht den Inhalt der Datei –
In 'printf die Ausgabe ("% s ", bytes);' Das Format '"% s "' dient zum Anzeigen einer Zeichenkette, aber 'bytes' ist eine Nummer. Beachten Sie, dass "buffer" keine Null-terminierte Zeichenfolge ist, also ist "% s" 'auch nicht das richtige Format. Überprüfen Sie die Referenz! –