易码技术论坛

 找回密码
 加入易码
搜索
查看: 2972|回复: 13

[求助] C语言怎样在程序运行时获得自身路径?

[复制链接]
发表于 2008-4-25 15:57:06 | 显示全部楼层 |阅读模式
如题,在C语言中程序读和写配置文件时是怎么获得自身路径的?我百度了半天只知道要调用API函数,但具体怎么弄呢?请大家帮帮忙。谢谢!
发表于 2008-4-25 20:10:00 | 显示全部楼层
不用api
main函数的argv[0]就是程序本身的全路径名
发表于 2008-4-25 21:54:43 | 显示全部楼层
对啊,申请main时里面带两个参数
 楼主| 发表于 2008-4-26 16:03:59 | 显示全部楼层
果然是这样,可是我需要的只是程序自身所在的文件夹,不要文件名。
  argv[0]=C:\Documents and Settings\Administrator\桌面\tt.exe
    怎么能获得 C:\Documents and Settings\Administrator\桌面\
发表于 2008-4-26 16:11:05 | 显示全部楼层
自己手动截取呗……或者就调用windows的API吧……
 楼主| 发表于 2008-4-26 17:12:38 | 显示全部楼层
原帖由 jason 于 2008-4-26 16:11 发表
自己手动截取呗……或者就调用windows的API吧……

我截了半天都截不对,请帮帮忙,谢谢。
发表于 2008-4-26 17:42:17 | 显示全部楼层
char name[260];
char *p;

strcpy(name,argv[0]);
p=strrchr(name,'\\');
*(p+1)=0;
printf(name);
 楼主| 发表于 2008-4-26 18:04:28 | 显示全部楼层
终于成功了!
 楼主| 发表于 2008-4-26 18:16:31 | 显示全部楼层
谢谢LEE老大,你的方法果然简单。
发表于 2008-4-26 20:55:11 | 显示全部楼层
简单就是美。
发表于 2008-4-26 22:45:14 | 显示全部楼层
直顶LSSSS
发表于 2008-4-27 07:37:58 | 显示全部楼层
^_^
俺的编程理念就是,要简化到不可减少一行语句
发表于 2008-7-11 15:09:34 | 显示全部楼层
能不能把nop删掉?
发表于 2009-2-19 17:54:55 | 显示全部楼层
原帖由 leesoft 于 2008-4-27 07:37 发表
^_^
俺的编程理念就是,要简化到不可减少一行语句

char name[260];
char *p;

strcpy(name,argv[0]);
*(p=strrchr(name,'\\')+1)=0;
printf(name);

----
简化了1行 ...
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 03:56 , Processed in 0.011811 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表