取得运行程序的绝对路径名

int main(int argc, char *argv)

  char appPath[PATH_MAX];
  char *cwd;

  cwd = getcwd(NULL, NULL);   //取得当前工作目录绝对路径名称
  if (strlen(cwd) + strlen(argv[0]) + 1> PATH_MAX)  //argv[0] 是当前运行的程序的相对路径名称(包括文件名称)
                                                                                    //检查完整路径长度是否超过分配的空间
  {
     printf("ERROR:  APP PATH TOO LONG/n");
  }
  else
  {
     strcat(strcat(strcpy(appPath, cwd), "/"), argv[0]);  //拼接成完整路径名称
     printf("APP PATH: %s/n", appPath);                       //得到的路径名称中包括可执行文件的名称。
  }
  free(cwd); 
}

 

下面函数从完整路径中取得纯路径:

char *extract_pathname(char *pathname, char *path)
{
 char *p;

 if (pathname == NULL || path == NULL) return NULL;
 if ((p = strrchr(path, '/')) == NULL)
 {
  strcpy(pathname, "/0");
 }
 else
 {
  strncpy(pathname, path, p + 1 - path);
  pathname[p + 1 - path] = '/0';
 }
 return pathname;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值