青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Find path of an application

Posted on 2012-04-18 22:44 RTY 閱讀(613) 評論(0)  編輯 收藏 引用 所屬分類: C/C++Mac os
Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Find path of an application


  • SubjectRe: Find path of an application
  • From: Terry Lambert <email@hidden>
  • Date: Tue, 16 Dec 2008 02:01:54 -0800
  • Delivered-to: email@hidden
  • Delivered-to: email@hidden

On Dec 16, 2008, at 1:00 AM, Rakesh Singhal wrote:
I am done with finding the process is running or not. Thanks a lot. Still I am stuck with second issue to find the path to my application in my system. Actually there are 3 steps:

1. To know that application is running or not?  Now it is done. 2. If not then get the path of application where it was installed (user can change the path during installation). 3. Launch the application.

My code is standard C++ tool so I want to use only C and C++ APIs. Please suggest me. 

You said this was a GUI app that you didn't control the sources to. So control it anyway by renaming the binary in the bundle and putting a stub in there that will save off the id for you and then reexec the real binary:


--- example with no error checking --- #include <mach-o/dyld.h>	/* _NSGetExecutablePath */ #include <limits.h>		/* PATH_MAX */ #include <unistd.h>		/* execve */ #include <libgen.h>		/* dirname */ #include <string.h>		/* strcpy */

#define BINARYNAME	"myreal_executable"

int main(int ac, char *av[]) { 	char pathbuf[PATH_MAX + 1]; 	char real_executable[PATH_MAX + 1]; 	char *bundle_id; 	int  bufsize = sizeof(pathbuf);

	_NSGetExecutablePath( pathbuf, &bufsize);

	bundle_id = dirname(pathbuf);

	strcpy(real_executable, bundle_id); 	strcat(real_executable, "/"); 	strcat(real_executable, BINARYNAME);

	execv(real_executable, av); } --------------------

Then write the path into /var/run/program.<pid> before you do the execv call to give control to the real binary.

Then in your other program go looking for /var/run/program.*. When you find one, take the pid and do an atoi() on it to get the integer pid back. Then end it a kill(pid, 0).

This function will return one of three things:

(1) 0, indicating that the process exists and you have the right to send it signals

(2) -1, with errno set to EPERM, indicating that the process exists and you do not have rights to send it a signal

(3) -1, with errno set to ESRCH, indicating that the process does not (yet) exist

-

Ideally, all this would be unnecessary because you put your daemon and the program you want to give it a UI into the same bundle, which ,means either one of them can find the other by looking at the dirname() from their own call to _NSGetExecutablePath().

No grovelling around trying to find out where something came from, because it tells you.

-- Terry _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list      (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden  
References: 
 >Find path of an application (From: "Rakesh Singhal" <email@hidden>)
 >Re: Find path of an application (From: Jean-Daniel Dupas <email@hidden>)
 >Re: Find path of an application (From: "Rakesh Singhal" <email@hidden>)
 >Re: Find path of an application (From: Jean-Daniel Dupas <email@hidden>)
 >Re: Find path of an application (From: "Rakesh Singhal" <email@hidden>)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品99国产精品酒店日本| 亚洲精品乱码久久久久久久久| 亚洲特色特黄| 欧美日韩中字| 欧美在线视频二区| 久久精品国产清高在天天线 | 欧美一区二区日韩| 黑人操亚洲美女惩罚| 亚洲福利视频一区二区| 欧美精品粉嫩高潮一区二区 | 一本色道88久久加勒比精品| 99在线精品免费视频九九视| 国产日韩精品视频一区| 美女成人午夜| 欧美日韩中文字幕日韩欧美| 久久激情五月激情| 欧美大片免费观看| 午夜视频久久久| 蜜臀va亚洲va欧美va天堂| 亚洲一区欧美激情| 久久亚洲综合色一区二区三区| 在线亚洲观看| 久久久噜噜噜久噜久久| 亚洲伊人久久综合| 免费成人在线视频网站| 欧美一级片在线播放| 欧美美女日韩| 蜜臀av一级做a爰片久久| 国产精品大片| 亚洲国产精品尤物yw在线观看| 国产农村妇女毛片精品久久莱园子 | 国产精品视频专区| 亚洲激情偷拍| 极品av少妇一区二区| 99这里只有精品| 91久久久久久久久| 久久久精品性| 久久成人一区| 国产精品久久久一区二区| 欧美激情一区二区三区在线| 国产日韩精品视频一区| 一本色道久久综合精品竹菊| 亚洲成人在线观看视频| a4yy欧美一区二区三区| 久久婷婷麻豆| 久久影院亚洲| 国自产拍偷拍福利精品免费一| 亚洲在线免费视频| 亚洲欧美国产另类| 国产精品videosex极品| av成人手机在线| 亚洲视频一区二区在线观看| 欧美激情精品久久久久久久变态| 男女av一区三区二区色多| 黄色成人av在线| 欧美一区二区三区视频免费| 欧美专区日韩专区| 国产亚洲综合性久久久影院| 亚洲免费一区二区| 欧美一区二区性| 国产亚洲欧美一区在线观看| 午夜免费日韩视频| 久久久免费观看视频| 狠狠色丁香久久综合频道| 久久av一区二区三区亚洲| 久久天天躁夜夜躁狠狠躁2022 | 国产婷婷色一区二区三区| 午夜精品久久久久久久白皮肤| 午夜精品福利在线观看| 国产毛片一区二区| 久久精品女人的天堂av| 欧美激情第3页| 一本在线高清不卡dvd| 欧美三级网址| 西西人体一区二区| 欧美freesex8一10精品| 亚洲精品日本| 国产精品成人在线| 久久精品视频一| 亚洲国产精品国自产拍av秋霞| av成人国产| 国产乱人伦精品一区二区| 久久精品国产免费观看| 亚洲国产欧美不卡在线观看| 亚洲午夜精品久久| 国内精品福利| 欧美精品一区二区蜜臀亚洲| 亚洲影视在线| 美国成人直播| 亚洲欧美国产三级| 亚洲国产导航| 国产精品社区| 欧美成人dvd在线视频| 亚洲午夜精品久久久久久app| 久久影院亚洲| 亚洲一区激情| 亚洲高清在线精品| 国产精品老牛| 欧美成人激情视频免费观看| 亚洲综合欧美| 亚洲人成在线播放| 久久婷婷成人综合色| 亚洲一区二区高清| 亚洲日本国产| 国产一区二区三区免费在线观看| 欧美精品一区三区在线观看| 久久国产精品99精品国产| 99热这里只有精品8| 欧美电影免费观看网站| 久久不射中文字幕| 亚洲一区二区三区欧美| 亚洲人体影院| 一区二区三区中文在线观看 | 亚洲综合国产精品| 亚洲人精品午夜| 蜜臀av在线播放一区二区三区| 亚洲在线1234| 99精品国产在热久久下载| 精品999日本| 国产亚洲二区| 国产欧美日韩一区二区三区在线| 欧美日韩大片一区二区三区| 噜噜噜躁狠狠躁狠狠精品视频| 亚欧成人精品| 亚洲欧美综合v| 亚洲尤物影院| 亚洲永久精品国产| 亚洲婷婷免费| 亚洲已满18点击进入久久| 制服丝袜亚洲播放| 日韩写真视频在线观看| 亚洲人成免费| 亚洲美洲欧洲综合国产一区| 亚洲国产精品尤物yw在线观看| 欧美成人午夜激情| 亚洲第一黄色| 亚洲黄色av一区| 亚洲欧洲综合| 亚洲精品一区二区三区樱花| 亚洲精品欧美在线| 亚洲精品看片| 一区二区三区波多野结衣在线观看| 亚洲精品综合久久中文字幕| 99国产精品视频免费观看一公开| 日韩小视频在线观看专区| 夜夜嗨一区二区| 亚洲在线播放电影| 久久av在线看| 蜜臀av性久久久久蜜臀aⅴ| 欧美激情一级片一区二区| 欧美日韩亚洲高清| 国产欧美精品一区| 欲香欲色天天天综合和网| 亚洲人被黑人高潮完整版| aⅴ色国产欧美| 欧美一区二区视频在线观看| 久久免费视频这里只有精品| 欧美福利视频| 国产精品99久久久久久宅男| 亚洲欧美国产高清| 久久综合九色综合欧美就去吻| 欧美风情在线| 国产精品爽爽爽| 亚洲福利视频免费观看| 夜夜嗨一区二区| 久久国产66| 亚洲国产日韩欧美在线99| 亚洲图片你懂的| 久久久久久久一区二区三区| 欧美精品九九99久久| 国产欧美日本一区视频| 亚洲国内自拍| 先锋亚洲精品| 欧美激情第10页| 亚洲欧美激情一区| 欧美激情2020午夜免费观看| 国产精品一区二区你懂得| 亚洲人成在线免费观看| 欧美一级久久久| 亚洲欧洲日本专区| 欧美在线一二三| 欧美性久久久| 亚洲区免费影片| 久久精品国产69国产精品亚洲| 亚洲国产精品成人一区二区 | 亚洲一区二区毛片| 久久亚洲国产精品一区二区 | 欧美区一区二区三区| 激情六月婷婷久久| 销魂美女一区二区三区视频在线| 欧美激情在线观看| 久久成人精品无人区| 国产精品v日韩精品v欧美精品网站| 一区精品在线播放| 欧美日本韩国一区| 亚洲人成人77777线观看| 久久久久亚洲综合| 性欧美video另类hd性玩具| 欧美视频一区二区三区在线观看 | 欧美日韩一区二区三区在线看 |