在Solaris上,我得到argv[0]
getexecname
的指针,然后我可以memcpy
在该位置。 (按Finding current executable's path without /proc/self/exe)
我想知道如何在argv[0]
readlink
上获取指向/proc/self/exe
的指针,但它没有给我一个指向它的指针。
感谢
答案 0 :(得分:1)
&argv[0]
为您指向argv[0]
。
您可以覆盖存储在argv[0]
指向的数组中的字符,只要您不要超过现有的null终止符;但是might cause UB尝试修改指针argv[0]
。
答案 1 :(得分:1)
对于readlink
,带上你自己的缓冲区。您分配一个缓冲区,传入指向它的指针,readlink
将结果存储在那里:
#include <unistd.h>
#include <linux/limits.h>
int main() {
char buffer[PATH_MAX];
int size = readlink("/proc/self/exe", buffer, sizeof(buffer));
buffer[size] = '\0';
// buffer is now the char* holding the filename
printf("The executable is %s\n", buffer);
}