使主args更长(名称更改linux)

时间:2015-05-19 18:56:00

标签: c linux

在linux中,我可以修改int main(int argc, char*argv[])内容以更改ps中显示的内容。到目前为止,我没有遇到任何问题,但在一种情况下,我希望通过包含GUID或某种ID来延长它。在那种情况下,我发现如果参数不足以容纳它,它将无法工作。基本上我想添加文本,这样当用户运行ps时,查看多个应用实例会更友好。

如何让参数更长,以便我可以添加要在ps中显示的文字?

1 个答案:

答案 0 :(得分:1)

有人可能需要仔细检查,但在我知道的其他ABI(Mac OS 9,Mac OS X)中,argv字符串位于堆栈顶部,在入口点之前#39 ; s框架。 (通过查找&argv[0]的地址并将其与另一个堆栈变量的地址进行比较,可以使用gdb轻松验证这一点。)

堆栈分配通常是不可调整大小的,您最有可能被限制在原始参数所占用的任何空间内。

一种可能性是向程序传递一个名为--thirthy-characters-long-guid的参数,并在运行时将该参数替换为GUID(如果存在)。