
No.2ベストアンサー
- 回答日時:
以下のようなプログラムでプロセス名が取得できます。
他にもプロセスに関する情報をとれるのでがんばってください。
/* #define SVR4_2_PROC */ /* for Solaris 2.6 */
#include
#include
#include
#ifdef SVR4_2_PROC
#include
#else
#include
#endif
#include
#include
#include
int
psinfo_of (pid, info)
pid_t pid;
#ifdef SVR4_2_PROC
psinfo_t *info;
#else
prpsinfo_t *info;
#endif
{
int fd;
char fname[32];
#ifdef SVR4_2_PROC
/* Solaris 2.6 */
sprintf (fname, "/proc/%d/psinfo", pid);
if ((fd = open (fname, O_RDONLY)) < 0) return -1;
if (read (fd, info, sizeof (psinfo_t)) < 0) {
close (fd);
return -1;
}
#else
/* Solaris 2.5 */
sprintf (fname, "/proc/%05d", pid);
if ((fd = open (fname, O_RDONLY)) < 0) return -1;
if (ioctl (fd, PIOCPSINFO, info) < 0) {
close (fd);
return -1;
}
#endif
close (fd);
return 0;
}
int
main (argc, argv)
int argc;
char *argv[];
{
#ifdef SVR4_2_PROC
psinfo_t info;
#else
prpsinfo_t info;
#endif
if (psinfo_of (getpid(), &info) < 0) exit (1);
fprintf (stdout, "name:%s\n", info.pr_fname);
exit(0);
}
No.1
- 回答日時:
samba,Netscape,canna等のメジャーなものは
/tmp 等に起動時にファイルを作って、2重起動
のチェックに使っています。
っていう方法ではだめですか?
他にはSolaris 2.X からは /proc ファイルシステム
がありますので proc をチェックすることでもチェック
できますが、プログラムが複雑になるかな。
この回答へのお礼
お礼日時:2005/02/13 00:05
ご回答ありがとうございます。
起動時にファイルを作る方法は簡単で私も考えた方法
ですが、起動中はファイルが存在し、プロセス終了後
はファイルが存在しないという状態が保証されない
ため、できれば他の方法がいいかなと思うのですが...
procをチェックするというのは具体的にどうすること
なのでしょうか?
教えて頂けると嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デーモンモードとは何でしょうか?
-
windows 間違ったボリュームが...
-
タスクバーの音量アイコンをク...
-
プロセスがタスクマネージャー...
-
ネットワーク使用率約75%維持状...
-
NETSTATのコマンドプロンプト画...
-
デスクトップ上の謎の白い□
-
プロンプトが返らない
-
実行中のプログラムを調べるには?
-
コマンドライン上でファイルを...
-
System Idle Processってなに?...
-
指定したプログラムの実行を禁...
-
Linux のシェルスクリプトの強...
-
UNIX コマンドにおける # や円...
-
SONYの音楽ソフト「x-アプリ」...
-
ファイル名一覧の印刷
-
bashでシングルクォート内の変...
-
スクリプトのエラー「unexpecte...
-
「環境変数名の編集」ウィンド...
-
シェルスクリプトとターミナル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TOPコマンドで表示するCPU使用...
-
プロセス、サービス、デーモン...
-
System Idle Processってなに?...
-
プロセスがタスクマネージャー...
-
タスクバーの音量アイコンをク...
-
デスクトップ上の謎の白い□
-
CPU使用率取得方法について
-
タスクマネージャのCPU率がおか...
-
スリープ状態から復帰後、DPCs...
-
Windowsで作れるスレッド最大数...
-
コマンドライン上でファイルを...
-
プロンプトが返らない
-
CPU使用率が常に50~10...
-
メディアプレイヤーが終了でき...
-
アクロバットを終了しても、プ...
-
sighupとsigtermの違い
-
イラストレータでの透明部分の...
-
デュアルCPU(デュアルコアでは...
-
デーモンモードとは何でしょうか?
-
【プログラム】 iu14d2n.tmp ...
おすすめ情報