Wenn man fopen(), dann ist die Lösung einfach verwenden kann:Wie kann man sagen, ob eine Textdatei mit leerer geöffnet ist() anstelle von fopen()
FILE *fp;
fp = fopen(path, "r");
fseek (fp, 0, SEEK_END);
size = ftell(fp);
wenn Größe Null ist die Datei leer ist.
Allerdings, wenn die Voraussetzung war, dass fopen() nicht verwendet werden kann. Statt dessen, was muss ich verwenden Systemaufrufe wie open():
int f = open(path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
ftell() kann nur mit Dateityp-Streams verwendet werden. Ich habe das gegoogelt und konnte keine Lösungen finden.
Sie können den Systemaufruf 'stat' verwenden. Sehen Sie sich das Element 'st_size' der Stat-Struktur für die Größe in Byte an. –