#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
int main(void)
{
int handle;
char buf[11] = "0123456789";
/* create a file containing 10 bytes */
handle = open("DUMMY.FIL", O_CREAT);
write(handle, buf, strlen(buf));
/* display the size of the file */
printf("file length in bytes: %ld\n", filelength(handle));
/* close the file */
close(handle);
return 0;
}
Не могу опредилить размер файла
if (f = open("c:/1/file.txt", O_CREAT) == -1)
{
Form1->Close();
}
long filesize = filelength(f);
close(f);
Файл создается, а функция filelength(f)
возвращает -1.
Подскажите, в чем дело.
Цитата:
Originally posted by Lazy_Man
Файл создается, а функция filelength(f)
возвращает -1.
Файл создается, а функция filelength(f)
возвращает -1.
Блин, сегодня вроде не первое апреля уже, чтобы такие приколы кидать. Ты что, хочешь, чтобы файл создавался для тебя сразу с данными? Или писать в него должен все-таки не дядя Петя?
Цитата:
Originally posted by smartsoft
Блин, сегодня вроде не первое апреля уже, чтобы такие приколы кидать. Ты что, хочешь, чтобы файл создавался для тебя сразу с данными? Или писать в него должен все-таки не дядя Петя?
Блин, сегодня вроде не первое апреля уже, чтобы такие приколы кидать. Ты что, хочешь, чтобы файл создавался для тебя сразу с данными? Или писать в него должен все-таки не дядя Петя?
Какая разница пустой файл или с данными, если файл пустой, функция должна вернуть 0, а не -1.
Хочу добавить, что этот код работает под DOS,естественно если убрать упоминание о форме, а в Builder 5 работать не хочет.
Код:
А я бы сделал так:
Код:
FILE *f=fopen("filename.txt","rt");
fseek(f,0,SEEK_END);
printf(" File size: %d",ftell(f));
fclose(f)
fseek(f,0,SEEK_END);
printf(" File size: %d",ftell(f));
fclose(f)