头文件路径

linux 下引用C、C++标准库、其他库的头文件一般都在:

  • /usr/include
  • /usr/local/include
  • /usr/lib/gcc-lib/xxx/xxx/include

macOS 上的头文件、库文件都被 XCode 接管了,也就是说不安装 XCode 很多开发都是做不了的,安装了 XCode 后一切都妥妥的。

开发通用的头文件都在这里:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

很多库在这里:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks

Frameworks 里面基本都有 Headers 文件夹,也是些头文件,和 include里的基本相同

实验一

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;int main() {STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);ZeroMemory( &pi, sizeof(pi) );// Start the child process.if( !CreateProcess( NULL,   // No module name (use command line)"C:\\Users\\xxx\\Desktop\\childProcess.exe",        // Command lineNULL,           // Process handle not inheritableNULL,           // Thread handle not inheritableFALSE,          // Set handle inheritance to FALSE0,              // No creation flagsNULL,           // Use parent's environment blockNULL,           // Use parent's starting directory&si,            // Pointer to STARTUPINFO structure&pi )           // Pointer to PROCESS_INFORMATION structure){printf( "CreateProcess failed (%d).\n", GetLastError() );return -1;}// Wait until child process exits.WaitForSingleObject( pi.hProcess, INFINITE );// Close process and thread handles.CloseHandle( pi.hProcess );CloseHandle( pi.hThread );return 0;
}
#include <iostream>
#include <thread>
#include <windows.h>
using namespace std;int main() {printf("child process begins\n");Sleep(5000);printf("child process ends\n");return 0;
}

实验二

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;int main() {STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);ZeroMemory( &pi, sizeof(pi) );// Start the child process.if( !CreateProcess( NULL,   // No module name (use command line)"C:\\Users\\DJN\\Desktop\\childProcess.exe",        // Command lineNULL,           // Process handle not inheritableNULL,           // Thread handle not inheritableFALSE,          // Set handle inheritance to FALSE0,              // No creation flagsNULL,           // Use parent's environment blockNULL,           // Use parent's starting directory&si,            // Pointer to STARTUPINFO structure&pi )           // Pointer to PROCESS_INFORMATION structure){printf( "CreateProcess failed (%d).\n", GetLastError() );return -1;}// Wait until child process exits.// WaitForSingleObject( pi.hProcess, INFINITE );Sleep(3000);// Close process and thread handles.CloseHandle( pi.hProcess );CloseHandle( pi.hThread );return 0;
}

实验三

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <synchapi.h>
using namespace std;BOOL KillProcess(DWORD ProcessId) {HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);if (hProcess == NULL) {return FALSE;}if (!TerminateProcess(hProcess, 0)) {return FALSE;}return TRUE;
}int main() {STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);ZeroMemory( &pi, sizeof(pi) );// Start the child process.if( !CreateProcess( NULL,   // No module name (use command line)"C:\\Users\\DJN\\Desktop\\childProcess.exe",        // Command lineNULL,           // Process handle not inheritableNULL,           // Thread handle not inheritableFALSE,          // Set handle inheritance to FALSE0,              // No creation flagsNULL,           // Use parent's environment blockNULL,           // Use parent's starting directory&si,            // Pointer to STARTUPINFO structure&pi )           // Pointer to PROCESS_INFORMATION structure){printf( "CreateProcess failed (%d).\n", GetLastError() );return -1;}// Wait until child process exits.// WaitForSingleObject( pi.hProcess, INFINITE );Sleep(3000);DWORD dwPid = GetProcessId(pi.hProcess);if (KillProcess(dwPid)) {puts("Success");} else {puts("Error");}// Close process and thread handles.CloseHandle( pi.hProcess );CloseHandle( pi.hThread );return 0;
}

进程创建、进程等待、进程休眠、结束子进程;macOS查看头文件路径;相关推荐

  1. 进程创建-终止-等待-替换

    文章目录 进程创建 进程终止 进程等待 进程替换 进程创建 意义: 进程运行时常会出现崩溃,为了避免父进程出现奔溃,则会创建子进程去代替父进程处理事务,即使崩溃并不会影响到父进程的正常运行,再创建一个 ...

  2. Linux进程创建fork、进程退出exit()、进程等待waitpid()

    虽然通过标题,我们就轻易的知道了这三个函数的作用,可是,你真的了解这几个函数码?下面让我们来看看这三个函数到底有什么! 一.进程创建fork() 首先,我们来看一看fork()的函数声明: #incl ...

  3. 进程控制(进程创建与终止 | 进程等待 | 程序替换)

    文章目录 一.进程创建 1. fork函数 2. fork创建进程 3. 写时拷贝 二.进程终止 1. 进程退出有三种情况 2. 常见进程终止方法 三.进程等待 背景(必要性) 1. 进程等待的方法 ...

  4. c语言进程创建、等待和退出

    c语言进程创建.等待和退出 创建进程 fork()函数:函数返回值类型为pid_t 若程序运行在父进程中,函数返回的PID为子进程今年称号: 弱运行在子进程中返回PID为0. #include < ...

  5. 父进程创建五个子进程

    父进程创建五个子进程 #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys ...

  6. 《Linux进程概念,进程创建退出等待替换,环境变量等基础操作 ---总结》

    前言 Linux系统的进程概念,进程状态,以及操作创建进程,还有环境变量及相关指令,程序地址空间等一些知识的梳理,将自己的理解总结如下,希望和各位一起进步,一起学习. 以下是本篇文章正文内容. 文章目 ...

  7. 【Linux】进程控制 —— 进程创建/终止/等待

    目录 一.进程创建 1.fork创建子进程,操作系统做了什么? 2.fork的用法以及失败的原因 二.进程终止 1.三种退出情况 2.main函数为什么一般情况下都要return 0 3.进程的退出码 ...

  8. Linux多进程开发(三)进程创建之守护进程的学习

       之前发过一篇守护进程的文章,但是解析的不够详细,这次,详细来解释守护进程的一些概念和特性.   概念: 后台运行.没有控制端与之相连的进程.独立于控制终端,通常周期性的执行某种任务.    Wh ...

  9. linux 实验2 进程创建,实验2Linux进程控制与通信

    实验2Linux进程控制与通信 实验 2 Linux 进程控制与通信1. 实验目的(1 ) 进一步认识并发执行的概念,认识父子进程及进程创建原理:(2 ) 了解 Linux 系统中进程通信的基本原理. ...

最新文章

  1. Python代码转Latex公式,这个开源库用一行代码帮你搞定
  2. python 画出决策边界_决策边界可视化,让你的分类合理有序
  3. 来!一起捋一捋机器学习分类算法
  4. Visual Studio 2017为Android APK包签名
  5. [LeetCode] Wildcard Matching 题解
  6. BigDecimal的使用说明
  7. centos7下解决tomcat启动慢的问题
  8. SAP Spartacus powertools-spa site在Commerce Cloud后台的属性
  9. 这类程序员成为百度、阿里宠儿,分分钟秒杀众应届毕业生
  10. redis 能不能监听特定的key失效_Spring boot实现监听Redis key失效事件实现和其它方式...
  11. 对飞行前请求的响应未通过访问控制检查:它没有http ok状态。_HTTP 缓存
  12. 如何让js在浏览器宽度改变的时候执行一个函数?浏览器宽度变化
  13. [推荐]13款js编辑器大全
  14. 如何从IP源地址角度,预防DDoS攻击?
  15. linux bash 自动补全,bash中的自动补全机制
  16. You must address the points described in the following [1] lines before starting Elasticsearch.
  17. VS2008显示当前页面的脚本发生错误的处理方法
  18. word文档密码破解
  19. 卡牌游戏算法原理、代码
  20. 如何将一个应用添加开机启动项

热门文章

  1. 基于Java的Android区块链钱包开发(ETH篇)
  2. ARCSDE详细介绍
  3. 疫情时代软件测试前景如何
  4. Python 零基础入门数据分析实战之小费数据集应用
  5. Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
  6. FAITH的过场CG是怎么制作的
  7. 当免疫检查点PD-1 遇上“魔剪CRISPR”| MedChemExpress
  8. USB-C为什么可以取代传统接口?消费类电子产品如何改用TYPE-C接口?
  9. 自由源于自信,自信源于自律
  10. 【ROS1总结】使用bloom-generat打包ROS包生成debian安装包