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

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>
            欧美wwwwww| 亚洲欧美自拍偷拍| 奶水喷射视频一区| 久久精品视频在线播放| 亚洲一区视频在线| 亚洲精品午夜精品| 亚洲级视频在线观看免费1级| 欧美中文字幕在线视频| 精品二区视频| 亚洲人www| 国产精品一区二区黑丝| 久久久精品国产一区二区三区 | 亚洲六月丁香色婷婷综合久久| 欧美国产精品久久| 国产精品wwwwww| 久久久久久欧美| 欧美激情第一页xxx| 亚洲自拍偷拍麻豆| 欧美一区二区黄| 99日韩精品| 欧美一区二区三区免费视| 亚洲欧洲综合另类| 亚洲视频在线一区观看| **性色生活片久久毛片| 亚洲无限乱码一二三四麻| 国产在线高清精品| 亚洲精品视频在线| 激情av一区| 亚洲视频播放| 亚洲日本欧美日韩高观看| 亚洲一区二区三区视频| 亚洲精品乱码久久久久久| 亚洲在线观看视频网站| 亚洲精品午夜| 老司机aⅴ在线精品导航| 午夜精品免费在线| 欧美激情精品久久久久久久变态 | 午夜久久黄色| 欧美成人午夜免费视在线看片| 性做久久久久久久免费看| 免费中文日韩| 蜜桃av一区| 国产精品一区久久久久| 亚洲美女色禁图| 亚洲黄色免费网站| 久久免费午夜影院| 欧美一区免费| 欧美视频一区在线观看| 亚洲经典三级| 91久久精品国产91性色tv| 久久久91精品国产| 久久xxxx精品视频| 国产精品视频久久| 一区二区三区日韩欧美| 宅男噜噜噜66国产日韩在线观看| 美国十次了思思久久精品导航| 久久免费精品视频| 韩国在线视频一区| 久久国产精品一区二区三区四区| 欧美一级午夜免费电影| 国产精品日韩专区| 亚洲在线黄色| 久久精品99国产精品日本| 国产欧美日韩一区二区三区在线| 亚洲一区二区三区视频播放| 午夜精品久久久久| 国产欧美日韩中文字幕在线| 亚洲欧美中文另类| 久久久久久夜| 日韩亚洲欧美一区二区三区| 蜜桃久久精品乱码一区二区| 欧美成熟视频| 亚洲理论电影网| 欧美日韩hd| 亚洲一区二区三区精品在线观看 | 欧美一区二区三区免费在线看| 国产精品乱码一区二区三区| 亚洲免费视频网站| 久久久高清一区二区三区| 韩国欧美一区| 欧美激情中文不卡| 亚洲视频一区二区在线观看 | 亚洲人精品午夜在线观看| 欧美黄色网络| 亚洲一区欧美激情| 久久综合色88| 一区二区三区日韩精品视频| 国产精品久久久久久久久免费桃花| 亚洲一区二区三区在线| 快射av在线播放一区| 一本色道精品久久一区二区三区| 欧美性jizz18性欧美| 午夜在线精品偷拍| 欧美国产日韩一区二区| 亚洲欧美另类在线| 在线视频国产日韩| 国产精品捆绑调教| 久久久久久久久久久一区| 日韩视频欧美视频| 久久久久久亚洲精品中文字幕| 亚洲精品日韩一| 国产欧美日韩精品在线| 亚洲狼人精品一区二区三区| 亚洲综合电影一区二区三区| 欧美国产日韩xxxxx| 亚洲欧美日韩中文在线制服| 亚洲高清在线播放| 国产精品天美传媒入口| 欧美护士18xxxxhd| 久久久成人网| 亚洲一区美女视频在线观看免费| 免费在线亚洲| 久久久久久9| 亚洲一区二区四区| 亚洲人成7777| 好看的亚洲午夜视频在线| 欧美视频久久| 欧美激情综合五月色丁香| 久久精品国产91精品亚洲| 亚洲私人影院| 一本色道久久加勒比精品| 欧美激情第9页| 美女成人午夜| 久久精品在线观看| 欧美一区在线看| 亚洲午夜精品视频| 99国内精品久久| 亚洲人成久久| 亚洲高清免费在线| 精品999在线播放| 国产亚洲va综合人人澡精品| 国产精品萝li| 国产精品成人免费精品自在线观看| 欧美激情一区二区| 欧美激情综合在线| 欧美电影免费观看大全| 你懂的视频一区二区| 久热精品在线视频| 美女视频一区免费观看| 久热这里只精品99re8久| 久久亚洲国产精品一区二区 | 亚洲欧美春色| 午夜精品免费在线| 欧美在线黄色| 久久国产66| 麻豆av福利av久久av| 美女尤物久久精品| 欧美国产在线观看| 欧美精品一区二| 欧美三级欧美一级| 国产精品久久一级| 国产亚洲欧美色| 尤物精品国产第一福利三区| 亚洲国产另类精品专区| 亚洲美女中文字幕| 亚洲综合精品一区二区| 欧美一区二区三区免费视频| 久久综合久久综合久久| 欧美激情按摩| 一本一本久久a久久精品综合妖精| 中文日韩在线视频| 欧美一站二站| 每日更新成人在线视频| 欧美网站在线观看| 国产在线播放一区二区三区| 亚洲国产99精品国自产| 中文国产成人精品久久一| 香蕉视频成人在线观看| 美日韩精品视频免费看| 亚洲毛片在线观看.| 亚洲欧美日韩精品久久亚洲区| 午夜精品偷拍| 欧美风情在线观看| 国产欧美一区二区精品忘忧草| 亚洲电影下载| 亚洲在线一区二区| 男女视频一区二区| 亚洲一区二区三区在线视频| 久久一区二区视频| 国产精品高潮呻吟久久| 亚洲第一偷拍| 亚洲综合第一| 亚洲精品女av网站| 亚洲综合社区| 欧美极品在线观看| 国产一区深夜福利| 亚洲一区二区三区乱码aⅴ蜜桃女| 在线视频精品一| 免费中文字幕日韩欧美| 亚洲欧美国产77777| 欧美国产一区视频在线观看| 国产亚洲欧洲| 亚洲小少妇裸体bbw| 亚洲电影第三页| 欧美一区二区三区四区在线观看| 欧美乱妇高清无乱码| 在线看国产日韩| 久久成人国产| 亚洲一二三区在线观看| 欧美日本精品|