在Windows环境下开发每个程序都会有一个工作目录
比如你在C盘下有一个.EXE文件你打开,那么这个程序的工作目录就在C盘下,你使用fopen等文件IO函数即便不给绝对路径给相对路径那么Windows会默认从工作目录下+相对路径
比如工作目录是C盘
然后fopen打开文件给相对路径
fopen("TEST.TXT");
实际上Windows在给你创建IO对象的时候是以这样的路径来选择磁盘文件的:
工作目录+fopen参数=C:\TEST.TXT
如果想要更改这个目录可以使用API:
SetCurrentDirectory
函数原型:
BOOL WINAPI SetCurrentDirectory( __in LPCTSTR lpPathName);
参数介绍:
__in LPCTSTR lpPathName:路径
返回值:
成功返回真,否则返回假
示列:
SetCurrentDirectory(_T("E:\\test\\"));
这里给大家说一个问题,之前博主遇到的!
博主之前在做T&M开发的时候在上面有个命令command调用可以调用外部程序,然后博主在d盘写了一个log程序,方便调用,结果调用log文件找不到了,路径是当前文件夹,结果最后发现,写到C盘下的T&M程序目录下了,也就是说使用command命令调用会把程序视为子进程,而子进程和父进程使用同一工作目录!
3644

被折叠的 条评论
为什么被折叠?



