1

これは、UNP Richard Stevens からのコード コピーです。

   #include "apue.h"                                                                                
   #include <sys/ipc.h>
   int main(int argc,char * argv[])
   {
       struct stat stat_buf;
       if(argc != 2)
           err_quit("usage ftock <pathname>");
       stat(argv[1],&stat_buf);
       printf("st_dev :%08lx, st_info : %08lx ,key :%08x\n",(unsigned long)stat_buf.st_dev,(unsigned long)stat_buf.st_ino,ftok(argv[1],0x57));
   }

出力:

st_dev :00000803, st_ino : 018e17c3 ,key :570317c3

したがって、キーは から 8 ビット、 からid8 ビット、 からst_dev16 ビットを取得しst_inoます。

SUSE gcc を使用しています。

私はその本がちょっと古いことを知っています。新しい実装には新しい方法がありました。

ftok だれか働きの原理を教えてくれません か? そして、理由はst_ino?

4

2 に答える 2