2015年4月10日金曜日

実行プログラムのFullPathを得る(Win32のGetModuleFilename())

Winや、Win32 APIではそのものズバリのAPIがあるが、Linuxで。

#include "stdio.h"
#include "unistd.h"
     int v = readlink("/proc/self/exe", s, sizeof(s));
      if (v != -1) {
          printf("FullPath=%s\n", s);
     }
 }

ファイルロック(排他)は、flock関数の他にシンボリックリンクファイルの作成で実現できる。
ロックファイルを作っておいて、それを指すシンボリックリンクが作成出来たら、成功、失敗したら失敗。

Unix一般にはどうなんだろう?/procファイルシステムがあればいけるかもだが、
最近、ほかのUnixに触る機会がないので不明

0 件のコメント: