これは、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 ビット、 からid
8 ビット、 からst_dev
16 ビットを取得しst_ino
ます。
SUSE gcc を使用しています。
私はその本がちょっと古いことを知っています。新しい実装には新しい方法がありました。
ftok
だれか働きの原理を教えてくれません か? そして、理由はst_ino
?