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

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

Find path of an application

Posted on 2012-04-18 22:44 RTY 閱讀(627) 評論(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>
            欧美怡红院视频| 久久久五月天| 日韩亚洲精品在线| 欧美午夜影院| 欧美一二三区在线观看| 亚洲欧美自拍偷拍| 国产最新精品精品你懂的| 老妇喷水一区二区三区| 久久综合导航| 中文亚洲字幕| 欧美一区在线看| 亚洲成人在线视频播放| 91久久久国产精品| 欧美三级网页| 久久久视频精品| 欧美激情网友自拍| 亚洲欧美日韩成人| 久久www成人_看片免费不卡| 亚洲第一福利在线观看| 日韩视频第一页| 国产亚洲欧美另类一区二区三区| 欧美成人dvd在线视频| 欧美日韩成人激情| 久久超碰97人人做人人爱| 久久一区欧美| 亚洲欧美日韩国产一区| 久久亚洲美女| 亚洲欧美日韩区| 男女av一区三区二区色多| 亚洲先锋成人| 欧美成人午夜77777| 午夜久久久久久久久久一区二区| 久久久免费精品| 亚洲欧美春色| 欧美精品激情| 欧美成人免费一级人片100| 欧美特黄一级大片| 欧美激情视频网站| 国产一区二区精品丝袜| 一区二区三区高清不卡| 亚洲欧洲综合另类| 欧美在线观看一区| 午夜在线电影亚洲一区| 欧美黄色免费网站| 女人色偷偷aa久久天堂| 国产三级精品三级| 一区二区毛片| 中文在线不卡视频| 欧美成年人视频| 欧美风情在线观看| 国外视频精品毛片| 西西裸体人体做爰大胆久久久| 亚洲视频狠狠| 欧美国产91| 亚洲电影有码| 亚洲福利专区| 麻豆精品在线视频| 免费在线成人| 在线看日韩av| 老司机午夜精品视频在线观看| 久久精品国产99精品国产亚洲性色| 欧美性大战久久久久久久蜜臀| 亚洲国产成人精品久久| 亚洲国产综合视频在线观看| 久久亚洲私人国产精品va媚药| 久久―日本道色综合久久| 国产私拍一区| 久久精品国产清高在天天线 | 欧美激情一区二区三区成人| 麻豆免费精品视频| 亚洲电影天堂av| 久久天天躁狠狠躁夜夜av| 久久视频国产精品免费视频在线| 国产午夜亚洲精品羞羞网站| 欧美在线观看一二区| 久久噜噜噜精品国产亚洲综合| 黄色成人精品网站| 蜜桃久久av一区| 亚洲精品久久久久久下一站| 一区二区电影免费观看| 欧美午夜美女看片| 亚洲在线观看免费| 久久久国产精品一区二区三区| 国产综合在线视频| 美女日韩在线中文字幕| 亚洲欧洲一区二区三区| 亚洲一区二区三区四区中文| 国产亚洲精品自拍| 免费视频一区| 亚洲视频在线观看三级| 久久精品亚洲一区二区| 亚洲国产视频直播| 欧美揉bbbbb揉bbbbb| 午夜精品一区二区三区四区 | 久久综合五月| 亚洲精品久久久久中文字幕欢迎你| 欧美精品乱码久久久久久按摩 | 性欧美xxxx视频在线观看| 国模套图日韩精品一区二区| 欧美成年人视频网站欧美| 99视频有精品| 久久夜色撩人精品| 一区二区三区日韩精品| 国产免费观看久久黄| 欧美不卡一卡二卡免费版| 国产精品99久久久久久久久久久久| 久久久久久有精品国产| 夜夜嗨av一区二区三区| 国产在线乱码一区二区三区| 欧美日韩成人精品| 久久精品国产v日韩v亚洲| 亚洲精品无人区| 另类尿喷潮videofree| 一区二区三区精品视频在线观看| 国产综合久久久久久| 欧美日韩亚洲高清一区二区| 久久色在线播放| 午夜久久福利| av成人手机在线| 亚洲国产精品欧美一二99| 久久久久久久久伊人| 亚洲与欧洲av电影| 亚洲美女黄色| 亚洲承认在线| 精品999网站| 国产丝袜一区二区| 国产精品永久免费| 欧美三级乱码| 欧美日韩在线免费观看| 免费人成精品欧美精品| 久久精品五月| 久久精品99国产精品| 亚洲一区二区在线视频| 一本色道久久加勒比88综合| 亚洲激情自拍| 亚洲欧洲综合| 亚洲日本一区二区三区| 欧美国产日韩在线观看| 蜜桃av一区二区在线观看| 久久精品国产免费| 久久国产精品99精品国产| 亚洲欧美制服另类日韩| 亚洲制服少妇| 午夜精品久久久久久久久 | 在线观看视频一区二区| 国产一区二区0| 国产亚洲欧美日韩日本| 国产亚洲综合性久久久影院| 国产一区二区三区最好精华液| 国产欧美一区二区精品婷婷| 国产午夜精品一区二区三区欧美 | 亚洲综合精品自拍| 亚洲男人的天堂在线aⅴ视频| 亚洲一二区在线| 亚洲欧美偷拍卡通变态| 欧美中在线观看| 久久综合999| 欧美国产精品一区| 亚洲美女电影在线| 宅男噜噜噜66一区二区| 午夜一区在线| 久久亚洲国产成人| 欧美国产一区在线| 国产精品成人aaaaa网站 | 裸体素人女欧美日韩| 欧美成人免费在线视频| 欧美日韩 国产精品| 国产精品久久久久久一区二区三区| 国产精品免费观看在线| 国产日韩欧美一区二区| 亚洲电影成人| 亚洲特级毛片| 久久久蜜桃一区二区人| 亚洲国产乱码最新视频| 欧美精品粉嫩高潮一区二区| 日韩视频―中文字幕| 亚洲精品在线观看视频| 亚洲一区二区三区激情| 性色av一区二区三区| 久久久中精品2020中文| 91久久精品国产| 在线性视频日韩欧美| 久久国产免费| 欧美日韩综合| 在线观看免费视频综合| 一区二区高清在线| 久久阴道视频| 一区二区三区四区五区精品视频 | 久热国产精品| 99国产精品视频免费观看一公开| 欧美一进一出视频| 欧美激情一区二区三区在线视频| 国产精品一区二区欧美| 亚洲美洲欧洲综合国产一区| 久久国产综合精品| 欧美精品一线| 国产资源精品在线观看| 夜夜爽99久久国产综合精品女不卡| 亚洲欧美综合v| 亚洲欧洲一区二区在线观看|