关闭

Linux C 获取当前应用程序的绝对路径

701人阅读 评论(0) 收藏 举报
分类:

1. 使用getcwd()获取的是当前工作路径,而不一定是程序的路径

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define MAXBUFSIZE 1024
int main ( int argc, char * argv[] )
{
	char buf[ MAXBUFSIZE ];
	getcwd(buf, MAXBUFSIZE);
	printf("\n");
	printf(buf);
	printf("\n");
	return 0;
}

2. 下面这个是一个 x86_64 GNU/Linux Kernel 3.2.0-67-generic 系统中利用proc获取绝对路径的例子

    利用 readlink()

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define MAXBUFSIZE 1024

int main ( int argc, char * argv[] )
{
	char buf[ MAXBUFSIZE ];
	int count;

	count = readlink( "/proc/self/exe", buf, MAXBUFSIZE );

	if ( count < 0 || count >= MAXBUFSIZE )
	{ 
		printf( "Failed\n" );

		return( EXIT_FAILURE );
	} 
	buf[ count ] = '\0';
	printf( "/proc/self/exe -> [%s]\n", buf );

	return( EXIT_SUCCESS );
}














0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:416864次
    • 积分:8035
    • 等级:
    • 排名:第2725名
    • 原创:291篇
    • 转载:252篇
    • 译文:1篇
    • 评论:27条
    最新评论