• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSTask arguments
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSTask arguments


  • Subject: Re: NSTask arguments
  • From: Greg Parker <email@hidden>
  • Date: Wed, 20 Feb 2013 16:46:09 -0800

On Feb 20, 2013, at 4:18 PM, email@hidden wrote:
> Is there a way to feed an NSTask argument data when the command line tool in the task expects a file path argument?
> I would like to not actually create a file to use as the argument, but rather send data that would be in said file.
> Can this be done via NSFileHandle or NSPipe from NSData?

It is possible to send data to a task. For example, you can send data to the task's standard input file descriptor by using -[NSTask setStandardInput:]. However, this only works if the command line tool is expecting to read from standard input. There are conventions to ask a command line tool to read standard input instead of a file (for example, setting the file name argument to "-"), but you can't force the tool to do so. Check the tool's documentation.

One alternative is to use a Unix named pipe. A named pipe is a pipe - one end writes, the other end reads - but it looks like a file in the filesystem and can be opened and read or written as if it were a file, as long as the reader or writer makes a single pass straight through the file. That means in some cases you can create a named pipe and pass that name to the command line tool.

You would probably have to drop down to the C mkfifo() function to create the named pipe; I don't know if any Cocoa classes can create them. There are some other complications like preventing security holes (don't use /tmp) and cleaning up orphaned pipes if your app crashes or is killed while the pipe is open. The internet has examples of those problems and how to solve them.


--
Greg Parker     email@hidden     Runtime Wrangler



_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: NSTask arguments
      • From: John Joyce <email@hidden>
References: 
 >NSTask arguments (From: email@hidden)

  • Prev by Date: NSTask arguments
  • Next by Date: Re: NSTask arguments
  • Previous by thread: NSTask arguments
  • Next by thread: Re: NSTask arguments
  • Index(es):
    • Date
    • Thread