取工程当前工作目录 及 取exe目录

(1)取当前工作目录:

相关函数:get_current_dir_name, getwd, chdir

头文件:#include

定义函数:char * getcwd(char * buf, size_t size);

函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小。

注:

1、在调用此函数时,buf 所指的内存空间要足够大。若工作目录绝对路径的字符串长度超过参数size 大小,则返回NULL,errno 的值则为ERANGE。

2、倘若参数buf 为NULL,getcwd()会依参数size 的大小自动配置内存(使用malloc()),如果参数size 也为0,则getcwd()会依工作目录绝对路径的字符串程度来决定所配置的内存大小,进程可以在使用完次字符串后利用free()来释放此空间。

返回值:执行成功则将结果复制到参数buf 所指的内存空间, 或是返回自动配置的字符串指针. 失败返回NULL,错误代码存于errno.

有两个版本:_getcwd()

_wgetcwd()

范例

// crt_getcwd.c
// This program places the name of the current directory in the 
// buffer array, then displays the name of the current directory 
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
 
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

   // Get the current working directory: 
   if( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %d\n", buffer, strnlen(buffer) );
      free(buffer);
   }
}

(2)取exe目录:

DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,
  _Out_     LPTSTR lpFilename,
  _In_      DWORD nSize
);

范例:

wchar_t szCurPath[MAX_PATH] = {0};
GetModuleFileName(NULL, szCurPath, MAX_PATH);
MessageBox(szCurPath);
时间: 2024-10-21 03:05:47

取工程当前工作目录 及 取exe目录的相关文章

Java分布式爬虫Nutch教程——导入Nutch工程,执行完整爬取

Java分布式爬虫Nutch教程--导入Nutch工程,执行完整爬取 by briefcopy · Published 2016年4月25日 · Updated 2016年12月11日 在使用本教程之前,需要满足条件: 1)有一台Linux或Linux虚拟机 2)安装JDK(推荐1.7) 3)安装Apache Ant 下载Nutch源码: 推荐使用Nutch 1.9,官方下载地址:http://mirrors.hust.edu.cn/apache/nutch/1.9/apache-nutch-1

Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】

Debug目录.Release目录,bin目录.obj目录,vshost.exe.config文件..exe.config文件分析[C#] 2013-10-06  孤风卓影  摘自 csdn博客  阅 558  转 4 转藏到我的图书馆 微信分享: 今天写程序的时候,需要更改.exe.config文件中的引用的webservice地址,用vs调试的时候,发现会修改vshost.exe.config中的对应项,.exe.config中的对应项是不会修改的,这样会导致在软件重启的情况下,.exe.c

新建标准mavenWeb工程以及Maven的web应用标准目录结构建议

到现在为止,使用Maven结构的Web工程越来越多,因此在此介绍一下通过Maven来构建项目的相关知识.     文档主要分为两部分:       1.如何通过maven来构建多模块的web项目       2.标准的maven项目的目录结构:(springMVC+mybatis).     1.如何通过maven来构建多模块的web项目       1)创建父工程 创建完成之后结构如下: 修改POM.xml文件,内容如下: <project xmlns="http://maven.apa

获取当前目录getcwd,设置工作目录chdir,获取目录信息

#include <unistd.h> #include <stdio.h> #include <limits.h> int main(int argc, char* argv[]) { char buf[PATH_MAX]; getcwd(buf, PATH_MAX-1); printf("the current path is :%s\n", buf); return 0; } 设置工作目录: #include <unistd.h>

Visual Studio 2017 调试器的工作进程(msvsmon.exe)意外退出 调试将终止

原文:Visual Studio 2017 调试器的工作进程(msvsmon.exe)意外退出 调试将终止 开发环境: Windows 10 in Parallels Desktop Visual Studio 15.6 场景还原: 使用 Visual Studio 15.6 (即 Visual Studio 2017) 新建 ASP.NET Core MVC 项目,启动调试,提示: 调试器的工作进程(msvsmon.exe)意外退出.调试将终止 其实这个问题曾经多次遇到过,但是都没做记录,导致

linux目录架构(工作中一级目录和常见二级目录详解)

linux系统的目录结构 目录结构特点: (1)目录结构和分区设备是没有关系的,也就是不同的目录可以跨越不同的磁盘设备或分区 (2)linux的目录结构也是有规律的,而且也是按照类别组织的 (3)区分绝对路径和相对路径 目录层次标准FHS FHS linux目录定义标准 FHS定义了两成规范 第一层是"/"目录下的各个目录应该放什么文件数据 第二层是针对/usr和/var这两个目录的子目录来定义 /根目录,一级目录 逻辑上所有的目录只有一个顶端/(跟),所有目录顶点 /        

记一次工作中was服务器项目目录权限被收回

状况描述:启动was服务器的时候报错,提示让去查看服务器的启动的日志 1.cd 进到nodgent 目录下哎 less 查看日志2.观察到 某个文件不能被delete.3.查看到项目目录的权限为root,而当前使用的账户权限为低一级的权限,造成启动的时候该目录wasadmin的文件不能被删除.4.su 进入到管理员权限 5.给was服务器赋操作启动目录的权限,目录假设为wasadmin6.执行 chown -R liuhai:liuhai /wasadmin7.su wasadmin8.ques

android 获取路径目录方法以及判断目录是否存在,创建目录

Environment 常用方法: * 方法:getDataDirectory()解释:返回 File ,获取 Android 数据目录.* 方法:getDownloadCacheDirectory()解释:返回 File ,获取 Android 下载/缓存内容目录.* 方法:getExternalStorageDirectory()解释:返回 File ,获取外部存储目录即 SDCard* 方法:getExternalStoragePublicDirectory(String type)解释:

wamp的www目录更改为指定目录

wamp的www目录更改为指定目录内容简介:主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改manage.ini的278行和manage.tpl的125行 我的WAMP2.0安装在E盘在,所以我的www目录是e:/wamp/www/,我想将它改为g:/www/ 第一步:就是照别人说的,修改httpd.conf文件 Do 主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改man