Попытка напечатать имя программы, используя имя_программы_инвокации
#include <stdio.h>
#define _GNU_SOURCE
#include <errno.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
extern char *program_invocation_name;
printf("%s \n", program_invocation_name);
exit(EXIT_SUCCESS);
}
Используя команду g cc filename. c -o filename , указанное выше код работает в Linux, но НЕ компилируется под MacOS:
gcc filename.c -o filename
Undefined symbols for architecture x86_64:
"_program_invocation_name", referenced from:
_main in filename-4acad8.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)