Подскажите способ определить из программы где она лежит, не откуда она была запущена, а где лежит. Чувствую что есть простой способ, пока пришлось заюзать следующее:
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
Как проще ?!!
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от linuxsoft
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от linuxsoft
Ответ на:
комментарий
от unnamed
Ответ на:
комментарий
от linuxsoft
Ответ на:
комментарий
от linuxsoft
Ответ на:
комментарий
от aton
Ответ на:
комментарий
от linuxsoft
Ответ на:
комментарий
от nobody
Ответ на:
комментарий
от vilfred
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от vilfred
Ответ на:
комментарий
от vilfred
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум BROADCAST sendto вызывает Permission denied (2004)
- Форум non-blocking write (2011)
- Форум покритикуйте функцию (2009)
- Форум не могу прочитать kmem (2007)
- Форум Как узнать реальный, не plt, адрес библиотечной функции (2018)
- Форум как включить поддержку больших файлов? (2008)
- Форум Чтение запись COM порта (2018)
- Форум почему так? (2014)
- Форум Как изменить максимальное число открытых файлов ? (2006)
- Форум Баг в libc или я не умею читать стандарт??? (2018)