В моя проект трябва да копирам споделения файл в директория, наречена share. Идеята ми е да копирам съдържанието на този файл с помощта на fgets и fputs:
FILE *fp;
int size;
char *fileBuff
fseek(fp,0,SEEK_END );
size=ftell(fp);
printf("Size of %s: %d bytes.\n",path,size); // print correct size
fileBuff=malloc(size); // mallocate the file buffer
printf("\nsize of file buffer is %d",sizeof(fileBuff)); //always print 4!!
while(!feof(fp)){
fgets(fileBuff,size,fp); // put into file buffer
}
printf("\nsize of file buffer is %d",sizeof(fileBuff)); // also print 4!!
Въпреки това, файловият буфер не може да бъде неправилно разпределен, размерът на този файлов буфер винаги е 4. какво се случва?
актуализация: изглежда има някакво недоразумение. sizeof() само за да проверя дали има нещо, съхранено във файловия буфер. Опитвам strlen(fileBuff) и винаги ми дава 1.
fstat
, за да намерите размера на файла, вместо да търсите до края и т.н. - person Ed Heal   schedule 13.04.2012