首页
学习
活动
专区
圈层
工具
发布

C语言实例|使用C程序优雅地杀掉其它程序进程

需求使用C语言编写程序,杀掉\终了指定的程序进程。程序列表里有一个正在运行的notepad2.exe,它的进程号是22516,下面通过编写代码将进程号是22516的程序杀掉。...程序分析代码里使用例了TerminateProcessAPI,这个API的作用就是终止指定的进程及其所有线程。...BOOL TerminateProcess( [in] HANDLE hProcess, [in] UINT uExitCode);参数in hProcess要终止的进程句柄。...in uExitCode进程和线程因此调用而终止的退出代码。 使用 GetExitCodeProcess 函数检索进程的退出值。 使用 GetExitCodeThread 函数检索线程的退出值。...关于API的使用可以查看微软的官方文档https://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminateprocess

1.6K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    开源项目: 造一系列常用的Linux应用API轮子

    这套接口的实现愿景是为了能够更快的搭建一套基于Posix接口的通用物联网3D打印框架而服务的,而这套框架将无差别的兼容全平台,无论是Linux、Win32还是Mcu等等,它都能够顺利运行;因此,我们需要去实现一些通用的轮子...而相对于其它的平台移植起来就容易多了,我们只需要替换掉封装接口以下的Posix API,便能够实现无差别兼容。...目前这套Linux应用API轮子分为21个大类,后续还会根据需求继续增加,开源项目地址: https://github.com/Yangyuanxin/Linux_APUE https://gitee.com...另外,每个小类中的实现都会有一个Test函数,例如目录操作的test函数: #ifdef TEST_OPEN Void CallBack(S8 *Name) { printf("Name: %s...参与贡献 Fork 本仓库 新建 Feat_xxx 分支 提交代码 新建 Pull Request

    69430

    解决ModuleNotFoundError: No module named ‘dlib‘问题-提供3.7x与3.9两个版本

    Dlib是一个使用现代C++技术编写的跨平台的通用库,遵守Boost Software licence. ...主要特点如下: ● 完善的文档:每个类每个函数都有详细的文档,并且提供了大量的示例代码,如果你发现文档描述不清晰或者没有文档,告诉作者,作者会立刻添加。...● 可移植代码:代码符合ISO C++标准,不需要第三方库支持,支持win32、Linux、Mac OS X、Solaris、HPUX、BSDs 和 POSIX 系统 。...● 线程支持:提供简单的可移植的线程API 。 ● 网络支持:提供简单的可移植的Socket API和一个简单的Http服务器 。 ● 图形用户界面:提供线程安全的GUI API 。...● 机器学习算法 ● 图形模型算法 ● 图像处理:支持读写Windows BMP文件,不同类型色彩转换 ● 数据压缩和完整性算法:CRC32、Md5、不同形式的PPM算法 ● 测试:线程安全的日志类和模块化的单元测试框架以及各种测试

    1.6K30

    【技术】Linux中编译C++代码的g++工具,以及g++的常用操作指令

    这是一篇技术文章,如果你想继续阅读,并希望从中有所收获,你现在应当具备以下技能: C++ 编程语言基础 Linux 操作系统基础 本文目录 1....人们通常用gcc编译纯C代码,用g++编译C++代码。实际上可以用直接用g++编译C或者C++代码,本文我们学习怎样使用g++。...GCC 编译器支持编译 Go、Object-C、Object-C ++、Fortran、Ada、BRIG(HSAIL)等程序; Linux 开发 C/C++ 一定要熟悉 GCC; VSCode 是通过调用...开始之前,先安装g++编译工具,如下命令 sudo apt install -y g++ 2. g++编译过程 使用 g++ 编译C++源代码的时候,我们可使用以下命令 即可完成编译C++源代码文件,并且直接产生可执行的二进制文件...优化源代码 所谓优化,是指如省略代码中从来未使用过的变量、直接常量表达式用结果替代等操作,这些操作会缩减目标文件所含的代码,提高最终生成的可执行文件的运行效率。

    5.8K20

    大学期间Linux C++后台开发这条线怎么走?

    我也经常被咨询Linux C++后台开发的学习路线。然而当谈到Linux C++后台开发时,无论Linux还是C++都是一个很大的话题,聪明的程序员需要学会做减法 1 C++ 简单谈一下C++。...此外呢,要学习Unix/Linux的一些基本概念、系统哲学。比如KISS、万物皆文件等等。不要觉得这些浪费时间,就当睡前读物或者厕所读物就好。这样更能激发你的学习兴趣,给你持久的学习动力。...这好像是介绍如何在Linux系统上写代码?其实不是,这里指的是如何使用系统的API来编程。这些API都是C语言的,但和我们课本里的不太一样。...Linux的系统API是来源于(兼容)Unix的。Unix的API在几十年的时间内,逐渐形成了标准:POSIX、SUS。...POSIX和SUS的区别这里不谈了,大致可以认为我们要学习的Unix环境编程的API就是POSIX标准。 当然说都是POSIX也不尽然,在Unix的世界里,仍然有一些非标的东西存在。

    95820

    MinGw与Cygwin的区别

    不过,现在GCC也有了许多Win32下的移植版本。 GCC是GNU公社的一个项目。是一个用于编程开发的自由编译器。...和其他GCC的移植版相比,她可以说是最接近Win32的一个了。 因为,MinGW几乎支持所有的Win32API,这也是MinGW的特色之一。 她所连接的程序,不需要任何第三方库就可以运行了。...2、从能力上说 如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。 如果程序还用到了POSIX API,则只能用Cygwin 编译。...Cygwin是用一个dll模拟linux环境来“欺骗”应用程序,好像自己运行在linux环境下;而mingw是在编译时提供linux到windows必要代码的“翻译”转换,用到的还是windows运行时库...Cygwin是功能强大的linux环境,由于有cygwin1.dll实现了底层的windows api到linux api的转化。

    6.7K31

    开发库的哪些注意事项

    在C++的跨平台开发中,创建高效、兼容性强的库至关重要,尤其是在涉及符号导出、库链接与跨架构兼容时。无论是Windows、Linux,还是macOS,每个平台都拥有独特的符号导出与库加载机制。...库路径未正确配置 尤其在Linux或macOS中,如果库未被放在标准路径中,编译器无法找到库文件。...避免使用特定平台API:尽量避免直接依赖特定平台的API函数。若无法避免,建议通过条件编译封装特定平台的功能。...例如,可以使用宏#ifdef _WIN32来隔离Windows特有的API调用,并为其他平台提供等效实现。 库版本控制与文档维护:在发布跨平台库时,保持库的版本控制是良好的实践。...本文梳理了这些关键点,以帮助开发者在构建C++库时避免常见错误,提升代码质量与兼容性。

    75510

    C与跨平台开发

    而与众多流行的高级编程语言相比,C语言是一种与平台真正相关的编程语言(C++可以认为是C的超集)。编译工具将C源代码翻译成某种机器指令集的二进制程序,这种程序只能在相应的操作系统和硬件平台上运行。...各种Unix和各种Linux视为同宗,Portable Operating System Interface (POSIX)这套规范在Unix-like上表现的较为一致,Windows上也有支持,但其上的...Win32 API功能更为丰富。...我们在用C进行开发时,尽量使用C89标准和部分C99特性,在需要依赖操作系统平台特性时,通过宏来控制相应平台上的特殊代码—— #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN...#endif 宏定义是C语言的一个特色,功能很多;可以利用它针对特定平台编译特定代码,其他平台的代码不会编译连接到执行文件中,这样产生的程序规模就会小很多,同时产生了平台依赖。

    1.8K40

    MinGW-w64的安装及配置教程

    它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。...而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。...3.选择操作系统接口协议 说明:如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。...如果你的“命令提示符”显示了一大串组件信息,那说明你的 MinGW-w64 已经安装完成了,恭喜! 从现在开始你就可以用 MinGW-w64 来编译 C/C++ 了。...关于使用编译器编译 C/C++ 程序,我将在下一个博客中进行介绍。

    8.1K20

    JDK 16 即将发布,新特性速览!

    外部链接程序 API,提供静态类型、纯 Java 对本机代码的访问。此 API 将在 JDK 16 中处于孵化器阶段。 将 ZGC(Z 垃圾收集器)线程堆栈处理从安全点移动到并发阶段。...启用 C++ 14 语言功能,允许在 JDK C++ 源代码中使用C++ 14功能,并提供有关部分功能可用于 HotSpot VM 代码的特定指导。...孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。...Musl 是 ISO C 和 Posix 标准中描述的标准库功能的 Linux 实现。由于云部署、微服务和容器环境,Alpine Linux 由于其映像大小较小,因此被广泛采用。...增加 Unix 域套接字通道,其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。

    1.2K20

    不停歇的 Java 即将发布 JDK 16,新特性速览!

    外部链接程序 API,提供静态类型、纯 Java 对本机代码的访问。此 API 将在 JDK 16 中处于孵化器阶段。 将 ZGC(Z 垃圾收集器)线程堆栈处理从安全点移动到并发阶段。...启用 C++ 14 语言功能,允许在 JDK C++ 源代码中使用C++ 14功能,并提供有关部分功能可用于 HotSpot VM 代码的特定指导。...孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。...Musl 是 ISO C 和 Posix 标准中描述的标准库功能的 Linux 实现。由于云部署、微服务和容器环境,Alpine Linux 由于其映像大小较小,因此被广泛采用。...增加 Unix 域套接字通道,其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。

    1K20

    JDK 16 即将发布,新特性速览!

    外部链接程序 API,提供静态类型、纯 Java 对本机代码的访问。此 API 将在 JDK 16 中处于孵化器阶段。 将 ZGC(Z 垃圾收集器)线程堆栈处理从安全点移动到并发阶段。...启用 C++ 14 语言功能,允许在 JDK C++ 源代码中使用C++ 14功能,并提供有关部分功能可用于 HotSpot VM 代码的特定指导。...孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。...Musl 是 ISO C 和 Posix 标准中描述的标准库功能的 Linux 实现。由于云部署、微服务和容器环境,Alpine Linux 由于其映像大小较小,因此被广泛采用。...增加 Unix 域套接字通道,其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。

    1K10

    MinGW-w64的安装及配置教程「建议收藏」

    大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说MinGW-w64的安装及配置教程「建议收藏」,希望能够帮助大家进步!!! 步骤: 1....它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。...而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。...3.选择操作系统接口协议 说明:如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。...image.png 如果你的“命令提示符”显示了一大串组件信息,那说明你的 MinGW-w64 已经安装完成了,恭喜! 从现在开始你就可以用 MinGW-w64 来编译 C/C++ 了。

    8.3K80

    c语言边角料5:一个跨平台的头文件

    一、前言 二、头文件 三、预定义的宏 四、Windows 平台场景分析 五、Linux 平台场景分析 一、前言 我们平常在写代码的时候,特别是在制造轮子的时候(为别人提供库文件),会遇到各种不同的需求场景...这个头文件的主要目的,就是定义一个宏:MY_API,然后把这个宏添加在库文件中每一个需要导出的函数或者类的声明中即可。...平台宏定义 不同的平台预定义了相应的宏定义,例如: Windows 平台:WIN32, _WIN32, WIN32; Linux 平台:linux, __linux, linux; 在一个确定的平台上,...编译器宏定义 如果在写库代码的时候,使用的是 C++,而使用者使用的是 C 语言,那么就需要对库函数进行 extern “C” 声明,让编译器不要对函数的名称进行改写。...使用库 在使用库的应用程序中,也需要在代码中 include 这个头文件,然后加上编译选项中定义的各种宏,来生成对应的 MY_API 宏定义。

    1.4K30

    几种判断操作系统

    而Python代码虽说是跨平台(CrossPlatform)的,但是毕竟他们还是有些不同的,有的函数方法只能在某些操作系统下实现,这时考虑到程序的可移植性,需要在代码中对当前所在的操作系统做一个判断。...例如,在Windwos 10 64位系统下Python2的解释器中运行,显示结果 win32 ;Python3的解释器中运行,显示结果也为 win32 。...这说明我们可以用 win32 这个返回值来判断当前系统是Windwos,返回 linux 则说明是Linux系统。...(由于手上没有Windows 32位版本的系统,故没有测试在它们上门的运行结果,猜测也差不多;另外十分好奇Linux python2返回的结果中为什么会有一个2……) 还有一种方法是调用 os 库中的...它的返回值有两种: nt 和 posix 。其中, nt 表示Windwos系操作系统, posix 代表类Unix或OS X系统。 那如果我们想要知道更详细的信息呢?想要更详细的区分?

    5.3K10
    领券