質問: 使用しているシステムは、tmpfsが/dev/shmにマウントされています。 tarファイルを/dev/shmにコピーし、展開しました。 ``` root@xxx:~# ls -al /dev/shm/update drwxrwxrwx 2 xuser xuser 100 Oct 21 18:03 . drwxrwxrwt 3 root root 100 Oct 21 18:03 .. -rwxr-xr-x 1 xuser xuser 1717 May 13 02:35 bootmisc.sh -rw-r--r-- 1 xuser xuser 89 Jul 23 06:14 mount.blacklist ``` の様にファイルが見えています。 C言語でソフトを開発しており、ファイルの存在チェックをstat()で行なっています。 USBメモリや/home/rootなどでは、正常に結果が返ります。 ``` if (stat("/dev/shm/update/bootmisc.sh",&st) != 0){ printf("file nothing\n"); } ``` とチェックすると、=0 が返りません。 tmpfs上のファイルをstat()ではチェック出来ないのでしょうか? その場合、代替え手段は無いでしょうか? よろしくお願いします。
回答: 自己解決出来ました。 if (stat(" /dev/shm/update/bootmisc.sh",&st) != 0){ printf("file nothing\n"); } ファイル名指定の”....”の先頭に空白があったのが原因でした。 空白があった場合、スキップしてくれると思い、なかなか原因にたどり着けませんでした。 お騒がせしました。