當我的程序試圖stat()
包含特定的UTF-8字符的文件時,stat()
函數返回一個錯誤。例如,我可以用vi打開文件/tmp/surgateDlpMgQure/Özkul Gazete
,但將同一個文件傳遞給stat()
會產生錯誤。系統區域設置爲:stat函數:沒有這樣的文件或目錄錯誤
LANG =的en_US.UTF-8
LC_CTYPE = 「的en_US.UTF-8」
LC_COLLATE = C
LC_TIME =「的en_US.UTF-8 「
LC_NUMERIC =」 的en_US.UTF-8"
LC_MONETARY = 「的en_US.UTF-8」
個LC_MESSAGES = 「是en_US.UTF-8」
LC_ALL =
我應該做的,以東西stat()
瞭解UTF-8字符?
下面是代碼:
int main()
{
struct stat s;
if (stat("/tmp/surgateDlpMgQure/Özkul Gazete", &s) == -1)
perror("stat");
switch (s.st_mode & S_IFMT) {
case S_IFBLK: printf("block device\n"); break;
case S_IFCHR: printf("character device\n"); break;
case S_IFDIR: printf("directory\n"); break;
case S_IFIFO: printf("FIFO/pipe\n"); break;
case S_IFLNK: printf("symlink\n"); break;
case S_IFREG: printf("regular file\n"); break;
case S_IFSOCK: printf("socket\n"); break;
default: printf("unknown?\n"); break;
}
return 0;
}
你可以發佈代碼...所以我們可以知道你如何使用stat()? – 2012-08-08 08:18:09
好的我編輯的問題。 – iyasar 2012-08-08 08:27:20