gcc 下获得程序名

Windows 上我们可以用 GetMuduleName 获得可执行文件的名字。Linux 下应该是 /proc/self/exe,如果只需要获得大概的名字用作帮助信息和诊断报告等,可以用 program_invocation_name 或者 program_invocation_short_name

 

program_invocation_name 是进程被命令行启动时调用的名字,也就是 argv[0]。 program_invocation_short_name 是 program_invocation_name 末尾不含目录的文件名部分。

 

以下取自 man page。

 

NAME
       program_invocation_name, program_invocation_short_name - obtain name used to invoke calling program

SYNOPSIS
       #define _GNU_SOURCE
       #include <errno.h>


       extern char * program_invocation_name ;
       extern char * program_invocation_short_name ;

DESCRIPTION
       program_invocation_name   contains the name that was used to invoke the calling program. 

       This is the same as the value of argv[0] in main (), with the difference that the scope of 

       program_invocation_name is global.

       program_invocation_short_name contains the basename component of name that was used

       to invoke the calling program.   That is,  it  is  the  same  value  as program_invocation_name ,

       with all text up to and including the final slash (/), if any, removed.

       These variables are automatically initialised by the glibc run-time startup code.

NOTES
       The Linux-specific /proc/[number]/cmdline file provides access to similar information.

CONFORMING TO
       These variables are GNU extensions, and should not be used in programs intended to be portable.

SEE ALSO
       proc (5)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值