通常のファイルパスでは、statを使用してサイズを取得できます。パスにC:\ temp \ sमानकe \ app.logのようなASCII以外の名前が含まれていると、動作しません。非アスキー文字でファイルを統計する方法
int main(int argc, char * argv[])
{
struct stat FileAttrib;
if (stat(argv[1], &FileAttrib) < 0) {
printf("File Error Message = %s\n", strerror(errno));
}
else
{
printf("File size %d\n", FileAttrib.st_size);
}
return 0;
}
statはchar *のみをとります。コマンドプロンプトから受け取ったパスは、実際には有効なファイルではありません。 Windowsを使用していると仮定すると、
ファイルを開くことができれば、ファイル記述子に 'fstat()'をいつでも使用できます。 – FatalError
私の名前の端末で、私の編集者は私にそのような文字を入力させてもいません。 haha :) –
ファイル名を正しくエンコードしてエスケープしてください。 "ls 'C:\ temp \ sमानकe \ app.log'でテストしてください。 – j13r