首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在c程序中,我们如何获得.exe文件的完整路径?

在C程序中,我们可以使用以下方法来获得.exe文件的完整路径:

  1. 使用argv[0]参数:在C程序的main函数中,可以通过命令行参数传递给程序的argv参数来获取.exe文件的完整路径。argv[0]参数存储了程序的名称和路径信息,可以通过解析该参数来获取完整路径。
  2. 使用GetModuleFileName函数:在Windows操作系统下,可以使用GetModuleFileName函数来获取当前可执行文件的完整路径。该函数需要传入一个指向存储路径的缓冲区和缓冲区的大小,函数会将完整路径写入缓冲区中。

以下是一个示例代码:

代码语言:txt
复制
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

int main(int argc, char* argv[]) {
    char path[MAX_PATH];
    
    // 使用argv[0]参数获取路径
    printf("通过argv[0]参数获取路径:%s\n", argv[0]);
    
    // 使用GetModuleFileName函数获取路径
    GetModuleFileName(NULL, path, MAX_PATH);
    printf("通过GetModuleFileName函数获取路径:%s\n", path);
    
    return 0;
}

请注意,以上方法都是针对Windows操作系统的,如果需要在其他操作系统上获取.exe文件的完整路径,可能需要使用不同的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C进阶】——我们代码是如何一步步变成可执行程序(.EXE

这篇文章,我们来探讨一下,我们代码,是如何一步步变成可执行程序,最终运行得出结果,一起来学习吧!!! 1....比如,我们写好了一个test.c文件,它需要先经过翻译环境生成可执行程序test.exe,然后再经过执行环境产生最终结果。 2....每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整可执行程序。 3....那我们现在vs上对该程序生成解决方案: 然后我们进入到文件所在路径进行观察: 我们发现,经过编译过程,test.c和add.c已经生成了对应目标文件。...然后: 链接器会把这些目标文件和链接库链接在一起,最终生成可执行程序。 那因为test.c中使用了add.cadd函数,所以这两个源文件要被链接在一起,这我们能想通。

1.2K10
  • 一日一技:Linux系统如何查询正在运行程序路径

    我们常常会遇到这种情况,我有一个程序 Linux 系统运行了几个月。当我想修改它代码时,却忘记了这个程序放在哪里。 如下图所示,忘记 test.py 这个文件在哪里了: ?...难道一个文件夹一个文件夹去寻找这个文件? 如果你电脑是 Linux 系统,那么解决方法非常简单,不需要安装任何第三方程序。只需要几行命令即可。...首先,使用ps -aux | grep xxx找到这个程序pid,如下图红框所示: ? 然后,使用cd命令进入/proc/文件夹,例如/proc/20623。...在这个文件夹里面,我们执行ls命令,可以看到有很多个文件。其中,我们需要是 cwd这个文件。 这些文件都是软连接。我们可以使用ls -l cwd查看cwd这个软连接指向真实地址。...这个地址就是我们这个程序所在位置,如下图所示: ?

    3.3K10

    Jenkins CI 自动构建与 C-STAT 代码

    本文中,我们将看到一个这样嵌入式开发工具(IAR 嵌入式工作台),以及如何C-STAT 静态代码分析与持续集成版本 Jenkins 集成在一起,以及如何通过自动构建。 先决条件: a....IAR 命令行应用程序 IAR 系统为我们提供了一个名为 IarBuild.exe 应用程序,该应用程序用于命令行执行分析。...您可以安装路径中找到 IarBuild.exe 应用程序,如下所示。...现在我们知道了用于分析、清理、生成报告文件命令。使用这些命令,我们可以轻松地编写批处理脚本文件 (.bat) 文件,然后 Jenkins 调用此批处理文件,作为预构建命令执行步骤。...但是我们可以使用以下自定义脚本来实现此目的。 我们可以获得包含低、、高问题计数分析结果 HTML 报告。这些值以格式 data: [0-9, 0-9 ,0-9] HTML 结果文件展现。

    1.2K30

    Windows 权限提升

    可能大家有一个这样经历,某程序执行过程要求启用弹出UAC要求使用管理员权限,同意之后获得高权限,但实际上,此时操作应用进程完整性等级为 high,UAC之前应用完整性等级为medium,本质上是以管理权限重新开启了应用程序...参考:应用程序清单 Manifest 各种 UAC 权限级别的含义和效果 知道这个问题答案之前需要思考程序触发UAC必要条件是什么?首先系统是如何知道应用程序需要提升权限?...应用程序清单可以声明程序执行级别,用来获得应用程序所需要特权,有3种设置(虽然没有该设置也是一种设置): asInvoker(跟随父进程,默认用户启动父进程都是explorer.exe,而在UAC...C/C++项目中请在属性页——链接器——清单文件配置相关选项。 最后生成应用程序带有盾牌标志: ?...,我希望各位了解管理员用户是入俄启用UAC之后如何获取High完整(包含在access tokens)。

    3.7K20

    Bypass-UAC(用户帐户控制)那些事

    一、初识UAC 1.用户帐户控制(UAC)简介 本文中,我们将简要介绍一下用户帐户控制,即UAC。我们还将研究它如何潜在地保护免受恶意软件攻击并忽略UAC提示可能给系统带来一些问题。...如果我们应用程序找到正确dll之前,将我们自己创造dll放入优先级更高搜索目录让应用程序优先加载此dll文件,这就造成了dll劫持。...但这只是dll劫持其中一种途径,他有这些途径: (1) DLL替换:用恶意DLL替换掉合法DLL (2) DLL搜索顺序劫持:当应用程序加载DLL时候,如果没有带指定DLL路径,那么程序将会以特定顺序依次指定路径下搜索待加载...此方法通常也被称为DLL侧加载 (6) 相对路径DLL劫持:将合法应用程序复制(并有选择地重命名)与恶意DLL一起放入到用户可写文件使用方法上,它与(签名)二进制代理执行有相似之处。...白名单程序 odbcad32.exe 方法: 打开C:\Windows\system32\odbcad32.exe,然后通过以下方法打开powershell或者cmd 2.伪装进程PEB绕过UAC 上面利用

    1.9K20

    DirectX修复工具使用技巧之三——命令行与配置文件参数介绍

    命令行与配置文件约有90%命令是通用,部分特殊命令只支持命令行配置方式,本文件将分别介绍命令行参数与配置文件参数。 命令行参数 本程序支持命令行参数提示,用户可通过/?...本人电脑中,DirectX修复工具主程序位置为桌面上DirectX_Repair(Enhanced_Edition)文件夹内,因此主程序路径为:C:\Users\zhangyue\Desktop...这里我们cmd路径时,需要用英文状态引号把路径扩上,这是因为路径中有空格,如果不加引号的话,cmd遇到空格将无法识别。.../flowsecurity – 此次运行程序时强制使用低安全级别,不论之前如如何设定。不论之前用户设定安全级别是高或低,如果命令行添加此条参数,则此次程序将强制以低安全级别运行程序。...如果配置文件不写此条参数则程序默认使用正常窗口模式。效果截图可参见命令行参数3。

    2.2K10

    pyinstaller打包找不到文件问题解决

    ,然后再运行,所以会导致这种问题 比如,当你程序里面调用一个外部exe时,但却提示找不到该exe文件。...其实表示你打包这个exe文件运行解压完整路径 如:C:\…\temp(临时文件夹)\asdqwezxc(你程序运行时自动解压到目录) 所以这个nginx.exe 被打包后,会解压到 C:\…\temp...问题来了: 诸如open(‘xxx.txt’)这些操作文件函数,一般首先都是工作路径查找你所指定文件。 所以,当我们直接这样执行已打包外部文件时,程序会报找不到文件!...')) 第一句打印会显示完整解压路径C:\…\temp\asdqwezxc\ 第二句打印是这样C:\…\temp\asdqwezxc\test\gg.exe 所以当我们调用已打包外部文件时...如何打包pyd成文件请看这篇文章:https://www.zalou.cn/article/184725.htm 接下来回到我们问题。

    9.7K40

    原创Paper | 基于快照 fuzz 工具 wtf 基础使用

    0x03 demo程序 参考资料 target-hevd 示例能够让我们快速上手 wtf,现在我们提供个 demo 程序以便完整学习 wtf 基本使用,编写 demo 程序如下: #define...「合适」内存快照位置,因为 wtf 将会以该快照作为起始运行状态, wtf_test.exe 我们目标函数是 fuzzme(),所以我们 fuzzme() 函数入口打下断点,并在 wtf_test.exe...无法正确处理,所以我们应该尽量选择一个「合适」快照点;对于无法避免 IO 操作,我们可以采用 patch 方式修改逻辑,如 demo 程序 printf() 函数调用,我们 Init()...\john\Desktop\workdir\inputs\1.txt 执行如下: 如果不能按预期执行,可以使用 run 命令生成路径覆盖,随后根据执行路径分析问题,下文我们将介绍 wtf 如何获取路径覆盖...如下: 其 crash 文件如下,顺序寻找到我们埋在 demo 程序两个异常错误: 0x07 覆盖率 参考资料 使用 wtf run 子命令还可以生成路径覆盖,配合 IDA 以及 lighthouse

    80261

    使用代码签名证书对EXE文件进行签名?

    有关如何使用代码签名对exe文件进行签名分步说明是的很多开发者Gworg申请了代码签名证书却不知道如何使用。...当可执行文件或应用程序经过代码签名时,数字代码签名将添加到文件,其中包括有关发布者和用于签署文件证书信息。此数字签名是使用代码签名证书私钥创建,该私钥存储证书持有者安全设备上。...那么让我们讨论如何签署 EXE如何对 .EXE文件进行数字签名?开始签署 EXE 或应用程序之前,您将需要以下内容:代码签名证书:这是可用于对您软件进行签名数字证书。...步骤3:使用SignTool命令使用获得证书对EXE或Windows应用程序进行签名,Signtool sign /f /p <EXE 或 Windows...这将增加额外安全层,证明其真实性并保证其完整性。现在您Windows 代码签名过程已完成,是时候确保您 EXE 已正确签名,并且您最终用户安装时不会遇到任何问题。让我们看看如何做。

    1.5K50

    网络基础知识大全_网络基础知识入门到精通

    :没有任何连接状态 2)如何获得一个IP地址主机名?...D、FTP命令: 登陆:ftp 对方网址(IP地址) 上传文件:get 文件本机完整路径 对方文件存放完整路径 下载文件:put 对方文件完整路径 本机存放文件路径 E、COPY命令: 在建立连接后(...6、vcmui.exe 位于C:\Windows\vcmui.exe,在后台自动将被覆盖驱动程序备份下来,当我们安装新 驱动出错时可用它进行恢复。...7、winrep.exe 位于C:\Windows\winrep.exe,能自动收集有关系统信息并提示用户输入故障所在,帮我们 编写一篇完整”求援”报告,并将其发送给有关技术维护人员,简化”求援”操作...这七个Windows自带程序可以开始菜单–运行中直接输入文件名(无需输入扩展名) 调出该程序

    66220

    让你 Windows 应用程序在任意路径也能够直接通过文件名执行

    我们可以在任何路径下输入 explorer 来启动资源管理器,可以在任何路径输入 git 来使用 git 相关命令。...我们知道可以通过将一个应用程序加入到环境变量获得这个效果,但是还有其他方式吗? 我们将这个过程称之为向 Windows 注册一个应用程序路径。...本文介绍向 Windows 注册一个应用程序路径各种方法。 ---- Windows 如何查找程序路径?...当我们在任意目录输入一个命令时候,Windows 会按照如下顺序寻找这个命令对应可执行程序: 当前工作目录 Windows 文件夹(仅此文件夹,不会搜索子文件夹) Windows\System32...现在我们添加一个我们自己开发程序 walterlv.exe,于是就直接在 App Paths 子键下添加一个 walterlv.exe 键,并将其默认值设为 walterlv.exe 完整路径

    2.1K10

    Python如何将py文件打包成exe

    使用pyi-grab_version创建版本信息模板文件,首先找到一个有版本信息XXX.exe工具,在此目录下打开cmd窗口,输入pyi-grab_version XXX.exe,执行成功后,会在此目录下获得一个...如果不在同一个文件下,写完整路径,[‘aaa.py’, ‘bbb.py’, ‘c:\\user\\ccc.py’] a = Analysis(['pin.py'], pathex...如果用到了非py文件需要打包,那么找到datas列表,将非py文件路径文件夹名写在元组里。比如,有图片文件的话,可以放在images文件程序调用图片文件时,需要用绝对路径,才能打包成功。...: 第一个参数是Python非py类型文件路径 第二个参数是非py文件保存此资源文件夹名称,要和路径文件夹名称相同。...如果在第2条中选择了pyi-makespec -F main.py ,那么此处只需要执行pyinstaller main.spec即可 6、生成exe程序dist文件,dist文件夹里包含了整个项目所需环境

    2.5K20

    10 行代码,用 Python 创建一个 Windows 桌面快捷方式!

    我们可以将此完整路径传递给 activate.bat 文件,它会为我们启动并自动启动并激活工作环境。...完整命令看起来像这样: cmd.exe /K C:/Users/luobo/AppData/Local/Continuum/miniconda3/Scripts/activate.bat C:/Users...特殊文件夹 从上面的描述看一看到,我们 miniconda 文件路径隐藏得很深,并且这个目录还取决于登录用户个人资料。所以为了我们制作快捷方式具有通用性,显然是不能进行硬编码。...我们需要另一个位置是 cmd.exe我们可以通过 CSIDL_SYSTEM 获得它。...例如,如果我们想查看开始菜单现有的快捷方式,我们需要获取 .lnk 文件完整路径,然后创建一个快捷方式对象并使用 dump 显示值。

    3.8K30

    python 获取脚本所在目录正确方法

    以前方法 如果是要获得程序运行的当前目录所在位置,那么可以使用os模块os.getcwd()函数。...更特别地,如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]输出还会变化: 如果把依赖库用默认方式打包为zip文件,那么sys.path[0]会输出C:\test...比如C:\test目录下还有一个名为sub目录;C:\test目录下有getpath.py,sub目录下有 sub_path.py,getpath.py调用sub_path.py;我们C:\test...如果我们 sub_path.py里面使用sys.path[0],那么其实得到是getpath.py所在目录路径C:\test,因为Python虚拟机是从getpath.py开始执行。...如果想得到sub_path.py路径,那么得这样: os.path.split(os.path.realpath(__file__))[0] 其中file虽然是所在.py文件完整路径,但是这个变量有时候返回相对路径

    8.8K40

    虹科技术 | 终端入侵防御 | 重大攻击中发现新Babuk勒索软件

    >.msi 我们在下面更详细地讨论这个安装程序攻击者使用域控制器NETLOGON文件夹--存放组策略登录脚本文件共享文件夹。...·两个加密文件sc.ocs和config.ocs.bat文件将:·注册表设置一个UAC旁路·检查安全解决方案并通过添加新防火墙规则阻止与它们通信·执行安装程序,负责将文件解压到C:\Users...最终有效载荷2、执行下一个阶段第一个任务是一个新线程完成,如以下片段所示:该恶意软件从微软应用程序执行期间交付命令行参数读取.OCS文件路径,并对内容进行解密。...下面的截图显示了某些代码块源码和反编译匹配情况。注意:编译器某些情况下会发挥它魔力,这可能导致不同代码定位和代码减少。修改我们注意到影子拷贝删除程序与源代码不同。...下面的代码片段显示了恶意软件如何执行WMI查询以获得每个影子副本ID,然后使用COM,按ID删除每个影子副本。值得注意是,BlackMatter和Conti勒索软件等恶意软件也表现出类似的行为。

    42920

    C#开发BIMFACE系列48 Nginx部署并加载离线数据包

    在前一篇博客《C#开发BIMFACE系列47 IIS部署并加载离线数据包》详细介绍了IIS部署并访问完整步骤。本篇博客详细介绍Nginx服务器如何部署并访问离线数据包。...我们选择 Stable version ->Windows-1.20.1 (上图中标记②) (3)解压 下载完成文件是一个压缩包,解压后将其拷贝到D盘根目录,完整结构如下 (4)常用命令(假设Nginx...中站点端口重复 (2)HTTP响应头设置 为了加速访问,离线数据包很多文件都进行了gzip压缩。...由于仅需要针对BIMFACE离线数据包.gz文件设置响应头,建议开发人员最好把BIMFACE离线数据包放置统一路径下,然后再针对这个统一路径,设置匹配后缀为.gz路径。...,并不需要特定云端程序提供运行时环境,因此可以像部署网页css、js、image一样部署静态Web服务器上。

    69650

    有趣10个CMD命令「建议收藏」

    如何关闭?直接点叉就行。 当我们加了个死循环,效果就变了。点叉,关不完。 这时候,我们可以使用命令taskkill /im python.exe /f,就关掉了。...%I 扩展到一个文件名和扩展名 %~fsI - 仅将 %I 扩展到一个带有短名完整路径名 %~dp$PATH:I - 搜索列路径环境变量目录,并将 %I 扩展 到找到第一个驱动器号和路径...这个东西我们只介绍/min和/max。我们如何最小化打开程序?start /min cmd.exe & exit运行这行命令后,当前cmd会消失,然后在任务栏中最小化弹出一个新cmd。...我这里有个文件夹tools,如何切换?cd 相对路径或绝对路径即可。cd tools即可进入该文件夹。 九、创建文件命令md emm,不要想歪了。 创建目录。...如果扩展被停用,则需要键入 mkdir \a\b\c\d。 如何套娃?我们来套一个吧。 文件夹套娃:创建文件夹,并进入文件夹,创建文件夹,并进入文件夹……如此循环。

    5.8K10

    通过 NT 符号链接重定向杀死 Defender,同时保持其不受打扰

    ,从中加载 Defender WdFilter 驱动程序二进制文件.这也可以用来使 Defender 加载任意驱动程序,没有工具可以成功定位,但它无法重新启动后继续存在。...Win32 路径、NT 路径和 NT 符号链接 Windows 中加载驱动程序时,有两种方法可以指定驱动程序二进制文件文件系统上位置:Win32 路径和 NT 路径。...对这两种路径之间细微差别的完整分析超出了本文范围,但James Forshaw 已经很好地解释了它。本质上,Win32 路径是更完整 NT 路径简化版本,并且严重依赖于 NT 符号链接。...让我们看一个例子: Win32路径 新台币路径 C:\Temp\test.txt \Device\HarddiskVolume4\Temp\test.txt 当explorer.exe用于导航文件系统文件夹时...这些自定义 RAII 类型raii.h标头中定义并在其各自.cpp文件实现。 获取系统 首先,我们将代币提升为系统代币。这可以通过文件GetSystem实现函数轻松完成。

    1.1K80
    领券