【问题标题】:CreateProcess vs. CreateFile EXECreateProcess 与 CreateFile EXE
【发布时间】:2019-03-22 00:39:12
【问题描述】:

[已编辑]

  • CreateProcess 创建进程(例如,从.exe 文件)

  • CreateFile 可以创建/打开文件。如果它打开一个.exe 文件,该执行文件将运行。在这种情况下,是否等于CreateProcess?

在这种情况下有什么不同吗?我是新手,提前谢谢你!

【问题讨论】:

    标签: c++ windows winapi process createprocess


    【解决方案1】:

    您对这些函数的作用的描述不正确。它们的用途完全不同。

    • CreateProcess运行一个可执行文件作为进程。它不会创建文件。

      创建一个新进程及其主线程。新进程在调用进程的安全上下文中运行。

      来源:MSDN

    • CreateFile 将打开或创建一个文件。它不会将该文件作为进程执行。

      创建或打开文件或 I/O 设备。最常用的 I/O 设备如下:文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、邮槽和管道。该函数返回一个句柄,可用于根据文件或设备以及指定的标志和属性访问文件或设备以进行各种类型的 I/O。

      来源:MSDN

    【讨论】:

    • 谢谢。请问CreateFile打开.exe文件的结果是什么? .exe 文件会运行吗?
    • @Huyen 使用CreateFile() (成功)打开文件的结果是打开文件的句柄,然后您可以使用它来读取文件的内容。文件名是否包含扩展名以及该扩展名可能是什么完全无关......
    • @huyen 不,我想我已经说清楚了。 .exe 文件没有什么特别之处——它只是数据。唯一的附加含义是 .exe 扩展名被操作系统的某些部分识别为旨在可执行的几种文件之一。仅仅因为你想读取或写入它的字节而执行文件是绝对站不住脚的。
    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多