我们怎样才能在C#中获得argv [0]?

问题描述 投票:2回答:1

使用C / C ++,我们可以得到argv [0]:

printf("%s\n",argv[0])

在C#中,args以argv [1]开头。

非bellow API至少在Linux下给出了argv [0]:

AppDomain.CurrentDomain.FriendlyName: only gives the name, no path
Process.GetCurrentProcess().ProcessName: gives wrong result with symbol link, and no path
Process.GetCurrentProcess().MainModule.FileName:  gives wrong result with symbol link, and the path is always absolute

仅供参考:在Linux下使用上面的C / C ++代码(其结果在此处被视为黄金标准),它会打印用于调用程序的确切路径(绝对路径或相对路径),以及是否通过任何符号调用程序链接,打印符号链接的名称而不是真正的程序。

我问这个问题,因为我尝试在Ubuntu下使用C#编写一个包装程序,如果包装程序的行为依赖于argv [0],它应该通过argv [0]完全透明。

c# linux argv
1个回答
3
投票

Environment.CommandLineEnvironment.GetCommandLineArgs()应该包含完整和未修改的命令行。

© www.soinside.com 2019 - 2024. All rights reserved.