__progname宏的用途(摘自DeepSeek)
__progname
宏解析
__progname
是一个在许多 Unix-like 系统中用于获取当前程序名称的宏或全局变量,主要用于错误报告、日志记录等场景。
基本定义
__progname
通常定义在标准库或系统头文件中
使用方法
基本用法
#include <stdio.h>
#include <stdlib.h> // 某些系统需要extern char *__progname; // 显式声明(如果头文件未提供)int main() {printf("Program name: %s\n", __progname);return 0;
}
替代方案(可移植代码)
#include <stdio.h>
#include <libgen.h> // 用于 basename()int main(int argc, char *argv[]) {const char *name = (argc > 0) ? basename(argv[0]) : "unknown";printf("Program name: %s\n", name);return 0;
}
初始化机制
__progname
通常在程序启动时由运行时库自动初始化: