lseek
ファイルのサイズを見つけるためだけに使用してlseek
おり、ファイルの実際のサイズよりも少ないバイトを返します。コードは正しいと思いますが、なぜそれが起こるのか説明できません。
初めてプログラムを実行したとき、うまくいきました。次に、ファイルにデータを追加して、サイズを変更しました。それ以来、新しいファイルでプログラムを再度実行すると、結果は常に古いファイルのサイズになります。
どんな助けでも大歓迎です!
int main(int argc,char* argv[]){
int out_file_size=0;
int fd_prognameout;
fd_prognameout=open(argv[1],O_RDWR | O_CREAT,00700);
if(fd_prognameout == -1){
perror("Error:");
return(0);
}
lseek(fd_prognameout,0,SEEK_SET);
out_file_size = lseek(fd_prognameout,0,SEEK_END);
lseek(fd_prognameout,0,SEEK_SET);
printf("The size of out file is: %d\n",out_file_size);
close(fd_prognameout);
return(0);
}