社区
C语言
帖子详情
在C中如何创建一个进程,请各位高手指点一下
nilboy
2003-10-20 12:44:52
似乎没有可用的函数,我对这方面非常模糊,希望最好给出的示例,非常感谢!!
...全文
107
4
打赏
收藏
在C中如何创建一个进程,请各位高手指点一下
似乎没有可用的函数,我对这方面非常模糊,希望最好给出的示例,非常感谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zoohoo
2003-10-20
打赏
举报
回复
创建一个进程是跟操作系统用关的,和语言本身没有关系。象unix创建进程的唯一方式就是fork(),对windows,可以使用CreateProcess函数。
jakeye
2003-10-20
打赏
举报
回复
学习ING
不明白,为什么在创建进程?创建进程有什么用?
nilboy
2003-10-20
打赏
举报
回复
我想知道如何自己编写windows下创建进程的方法,即不直接利用现成的createprocess函数,涉及如申请内存空间及其分配之类的,望各位在指点一下,马上结帖给分,谢谢谢....
Hot_Forever
2003-10-20
打赏
举报
回复
在unix和linux下fork()会产生一个与父程序相同的子程序,唯一不同之处在于其process id(pid).
函数声明
pid_t fork(void);
返回值 -1 失败
0 子程序进程
>0 将子程序的pid传回给父进程
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void main(void)
{
pid_t pid;
printf("hello\n");
pid = fork();
switch (pid) {
case -1: printf("failure!\n"); break;
case 0: printf("I am child!\n"); break;
default: printf("my child is %d\n",pid); break;
}
for (;;) { /* do something here */ }
}
程序结果:
hello
my child is 8650
I am child!
可见,使用fork()函数,已经使程序一分为二了
在windows下,可以有3个API函数使用:WinExec, shellexecute,createprocess
WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式
ShellExecute较 WinExex灵活一点,可以指定工作目录
CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.如下
STARTUPINFO stinfo; //启动窗口的信息
PROCESSINFO procinfo; //进程的信息
CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo);
Linux
进程
管理命令 < Series 9. >
Re: 《Linux
进程
管理命令》 ---------------------------------------内容提要: 01/15)命令 ps :查看
进程
(快照)02/15)命令 pstree :显示
进程
状态树03/15)命令 pgrep :查找匹配条件的
进程
04/15)命令 kill :终止
进程
号(1277)05/15)命令 killall :通过
进程
名(nginx)终止
进程
(父/子
进程
)06/15)命令 pkill :通过
进程
名终止
进程
(通杀)/终止客户端(pst/tty)07/15)命令 top :实时显示系统
中
各个
进程
的资源占用状况(录像)08/15)命令 nice :调整程序运行时的优先级09/15)命令 renice :调整运行
中
的
进程
的优先级10/15)命令 nohup :用户退出系统,
进程
继续工作11/15)命令 strace :跟踪
进程
的系统调用12/15)命令 ltrace :跟踪
进程
调用库函数13/15)命令 runlevel:输出当前运行级别14/15)命令 init :初始化 Linux
进程
15/15)命令 service :管理系统服务 本人在教学和实战过程
中
发现,即便是有一定运维经验的人,可能已经能够搭建一定复杂度的Linux架构,但是在来来回回的具体操作
中
,还是体现出CLI(命令界面)功底不够扎实,甚至操作的非常‘拙’、处处露‘怯’。 对一个士兵来说,枪就是他的武器,对于一个程序员来说,各种library(工具库)就是他的武器;而对于Linux运维人员来说,无疑命令行工具CLI(命令界面)就是他们的武器;
高手
和小白之间的差距往往就体现在对于这些“武器”的掌握和熟练程度上。有时候一个参数就能够解决的事情,小白们可能要写一个复杂的Shell脚本才能搞定,这就是对CLI(命令界面)没有理解参悟透彻导致。 研磨每一个命令就是擦拭手
中
的作战武器,平时不保养不理解,等到作战的时候,一定不能够将手
中
的武器发挥到最好,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,结合当下流行或最新的Linux(v6/7/8 版本)同时演示,将命令行结合到解决企业实战问题
中
来,体现出教学注重实战的务实精神,希望从事或未来从事运维的同学,能够认真仔细的学完Linux核心命令的整套课程。 本课程系列将逐步推出,看看我教学的进度和您学习的步伐,孰占鳌头! 注:关于教学环境搭建,可以参考本人其它课程系列,本教学
中
就不再赘述! 《参透 VMware 桌面级虚拟化》 《在虚拟机
中
安装模版机(包括应用软件等)》 《SecureCRT 连接 GNS3/Linux 的安全精密工具》
linux
进程
是如何交互的,在linux下,用共享内存来实现
进程
间的数据交互,
请
问如何实现同步?(这些
进程
没有父子关系)...
听说用信号量(sem_init这一套)可以,但不知道怎么正确使用,查资料后有人说在linux下信号量不能实现
进程
间同步,了解不多,希望各位
高手
多多
指点
,最好能给个例子,谢谢!|server.c#include#include#defineSEGSIZE1024#defineREADTIME1unionsemun{intval;structsemid_ds*buf;unsigned...
进程
管理器---一个SDK的例子
我刚学习SDK编程,想编一个SDK编的
进程
管理器,可是网上都没有,只好自己写了。不足之处,
请
各位
高手
指点
,谢谢!下面是代码:编译前在project setting ->link->object /library module
中
添加comctl32.lib Psapi.lib这两个库。process.cpp:#include #include #include #include
c语言mooc gps数据处理的数据_与大家分享
一下
我对C语言的认识
很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编有个建议,可以加小编弄的一个C语言交流基地,大家可以进入交流基地:957-646-476,里面新手入门资料,可以说从零到项目实战,都是可以免费获取的,还有程序员大牛为各位免费解答问题,热心肠的小伙伴也是蛮多的。不失为是一个交流的...
系统:Shell和GDI Thread和杂项等
Q如何判断是文件,还是目录?急!! T
请
各位
高手
指教,在c 语言
中
,用程序怎样判断要操作的是一个目录还是一个文件?在c语言
中
要调用api函数时许包含什么头文件?具体要用到什么函数
请
多多帮忙!!谢谢!!APathIsDirectory#include Q用程序怎么打印一个Word或者RTF文档啊? T比如有C:/a.rtf我怎么可以把它送到打印机打出来呢?AShellExecute C:/a.rtf
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章