如何让Cocoa命令行工具知道在终端中调用它的工作路径?

如何让Cocoa命令行工具知道在终端中调用它的工作路径?,cocoa,bash,path,command-line-tool,Cocoa,Bash,Path,Command Line Tool,cocoa命令行程序的目标是获取一个参数,该参数是文件名,并将其导入程序进行解析。我希望能够在mac os中从终端调用我的程序,比如说“ParseFile”,参数为“Filename.txt”(例如$ParseFile Filename.txt),但到目前为止,我无法理解我的程序如何知道Filename.txt的绝对路径 例如,当您使用“cp filename.txt/whateverfolder/filename2.txt”时,您正在将文件“filename.txt”从终端的当前工作目录复制到

cocoa命令行程序的目标是获取一个参数,该参数是文件名,并将其导入程序进行解析。我希望能够在mac os中从终端调用我的程序,比如说“ParseFile”,参数为“Filename.txt”(例如$ParseFile Filename.txt),但到目前为止,我无法理解我的程序如何知道Filename.txt的绝对路径

例如,当您使用“cp filename.txt/whateverfolder/filename2.txt”时,您正在将文件“filename.txt”从终端的当前工作目录复制到根目录上名为whateverfolder的文件夹中。cp如何知道filename.txt的绝对路径?如果我的桌面上有filename.txt,cp就会知道我发送了/Users/username/desktop/filename.txt。这就是我想让我的程序知道的

我已经能够让我的程序知道它在哪里执行,但这与调用bash终端时的当前工作目录有很大不同


我如何解决这个问题?非常感谢

使用
NSFileManager
currentDirectoryPath
方法:

NSString *currentpath = [[NSFileManager defaultManager] currentDirectoryPath];
cp如何知道filename.txt的绝对路径

它不知道也不必知道。它可以只使用相对路径。当前工作目录是从父进程继承的

我已经能够让我的程序知道它在哪里执行,但这与调用bash终端时的当前工作目录有很大不同


你什么意思?可执行文件所在的目录?这通常不太有趣。在该上下文中扮演角色的唯一其他目录是当前工作目录。如果你已经得到了,你还需要什么?

什么是“可可命令行工具”?一个基于C框架的目标C可执行文件,没有任何Guito扩展在<代码> CP <代码>上,不必知道:它是解决路径在磁盘文件上实际的内核,内核知道进程的工作目录,因此可以解析相对路径。也就是说,nneonneo的回答在为您的程序提供学习工作目录的方法方面也是正确的,但通常不需要。谢谢您这正是我所需要的,我不知道NSFileManager有这么多感谢!