zoukankan      html  css  js  c++  java
  • readlink 获取进程的绝对路径

    readlink可以获取exe所在的路径(直接和进程关联);无法获得so的路径,so路径可以用dladdr,参考另一篇文章
    linux系统中有个符号链接:/proc/self/exe 它代表当前程序,所以可以用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
    " );
           return( EXIT_FAILURE );
        }
        /* readlink仅将软链接文件的内容拷贝到buf中,
           却不会追加字符串结束符,
           因此我们需要自己追加字符串结束符。*/
        buf[ count ] = '';
        printf( "/proc/self/exe -> [%s]
    ", buf );
        return( EXIT_SUCCESS );
    }  
     
    新战场:https://blog.csdn.net/Stephen___Qin
  • 相关阅读:
    multition pattern
    singleton pattern
    strategy pattern
    设置Activity的属性
    iphone自动旋转与调整大小
    游戏编程从哪里开始呢
    TTF字体文件使用
    TextMate介绍
    ios程序崩溃处理
    ios笔试题
  • 原文地址:https://www.cnblogs.com/Stephen-Qin/p/10640487.html
Copyright © 2011-2022 走看看