Подскажите способ определить из программы где она лежит, не откуда она была запущена, а где лежит. Чувствую что есть простой способ, пока пришлось заюзать следующее:
progman@prealfa:/tmp/ddd$ cat test.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
int main()
{
char buf[1024];
sprintf (buf, "/proc/%lu/exe", getpid());
int rc = readlink(buf, buf, sizeof(buf));
if (rc == -1)
{
printf ("ERROR: %s\n", strerror(errno));
exit(1);
}
buf[rc] = 0;
printf ("%s\n", buf);
return 0;
}
progman@prealfa:/tmp/ddd$ g++ test.cpp -o test
progman@prealfa:/tmp/ddd$ ./test
/tmp/ddd/test
Как проще ?!!