我正在Ubuntu下用Mono用C#编写包装程序。成功包装的关键是尽可能透明。要求之一是使argv准确通过。
使用Process.Start启动包装程序时,如何将argv [0]传递给包装程序?看来我们根本无法传递argv [0],这仅仅是 设置为包装程序的可执行文件完整路径。
某些程序的行为可能取决于argv [0]。对于AOSP的预构建clang工具集来说,这是正确的。例如,在
下prebuilts/clang/host/linux-x86/clang-4691093/bin$
有lld,该程序显然检查argv [0]来确定要调用的符号链接(ld.lld / ld-link / ld64.lld)。如果您未通过预定义的符号链接调用lld,则lld将报告错误。
使用C / C ++,很容易将argv [0]设置为符号链接的名称以成功调用lld。但是我们可以在C#中做到这一点吗?