//get_exe_dir.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
char* get_exe_dir()
{
int path_len = 1024;
char* exe_dir = (char*)malloc(path_len * sizeof(char));
if(readlink("/proc/self/exe", exe_dir, path_len) <= 0)
{
return NULL;
}
char* path_end = strrchr(exe_dir, '/');
if(!path_end)
{
return NULL;
}
*path_end = '\0';
return exe_dir;
}
int main()
{
printf("%s\n", get_exe_dir());
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
char* get_exe_dir()
{
int path_len = 1024;
char* exe_dir = (char*)malloc(path_len * sizeof(char));
if(readlink("/proc/self/exe", exe_dir, path_len) <= 0)
{
return NULL;
}
char* path_end = strrchr(exe_dir, '/');
if(!path_end)
{
return NULL;
}
*path_end = '\0';
return exe_dir;
}
int main()
{
printf("%s\n", get_exe_dir());
return 0;
}