On Wed, Jul 2, 2008 at 8:46 AM, Jason Coco <[EMAIL PROTECTED]> wrote:
>
> On Jul 2, 2008, at 11:38 , Clark Cox wrote:
>
>> On 7/2/08, Jason Coco <[EMAIL PROTECTED]> wrote:
>>>
>>> Yeah, to me it is... although I still agree that it's not an ideal
>>> solution for a Cocoa application...
>>>
>>> By the way, assuming you change char *args[] = { "-a", "Safari",
>>> NULL }; to char *args[] = { "/usr/bin/open", "-a", "Safari", NULL };
>>> the exec* example actually works while the LaunchServices example
>>> fails with kLSApplicationNotFoundError.
>>>
>>> After playing around with it a little, I discovered that you need to
>>> actually call it CFSTR("Safari.app") in this case to get it to work
>>> correctly... so like anything else in life, since I'm much more
>>> familiar with the POSIX/BSD API (and since pretty much every operating
>>> system I've ever worked with treats exec* similar) it's a lot easier
>>> *for me* than using LaunchServices.
>>
>> Easy or not, it's still wrong. Launching safari via exec will not, for
>> example, re-use an already/running instance.
>>
>> Just don't use exec to launch GUI applications--period.
>
> I don't think anyone disagrees with that... that's why the suggestion was to
> use /usr/bin/open if you were gonna use an exec* call. If you use
> /usr/bin/open it makes a proper connection to the window server as well as
> sending the proper apple event to an already-started application.

But why exec an external tool, when you can just call the API directly?

Exec'ing /usr/bin/open to launch Safari is akin to using popen("cat -
> filename", "w"), and piping data to it whenever you need to write a
file, instead of just using open/write (or fopen/fwrite).


-- 
Clark S. Cox III
[EMAIL PROTECTED]
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to