有移植linux下程序到windows下的请进 我现在想移植linux下的程序到windows中,但程序中有fork()函数我想问,在windows下应该如何替换,是用多线程,还是其他机制 本人没有移植经验,想问有哪些网站介绍一些移植方面的知识 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 linux fork function same toCreateProcess,ShellExecuteEx,WinExec in win32 fork是复制一个进程CreateProcess吧! fork好象与CreateProcess不同,fork会将当前进程的部分运行状态复制 了,比如执行fork后该执行哪一句,而CreateProcess只是从头开始执行一个进程。 程序分歧fork()fork()会产生一个与父程序相同的子程序,唯一不同之处在於其processid(pid)。如果我们要撰写守护神程式,或是例如网路伺服器,需要多个行程来同时提供多个连线,可以利用fork()来产生多个相同的行程。函数宣告pid_t fork(void);pid_t vfork(void);返回值:-1 : 失败。0 : 子程序。>0 : 将子程序的process id传回给父程序。在Linux下fork()及vfork()是相同的东西。范例一: fork.c在这个范例中,我们示范fork()的标准用法。#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 */ }}编译:gcc -o ex1 fork.c执行结果:./ex1 &hellomy child is 8650I am child!我们可以见到,使用fork(),可将一个程式分岐成两个。在分歧之前的程式码只执行一次。检验行程:ps | grep ex18649 p0 R 0:40 ./ex18650 p0 R 0:40 ./ex18649是父程序的pid,8650则为子程序的pid。您会需要用到"killall ex1"来杀掉两个行程。 dumpbin.exe 为何查不出输出函数 关于UDP发送原始数据包的问题 为什么msdn里有些东西查不到? 0x%x 0x%p 是什么意思呢? 请教sockaddr_in的问题?? 用CRecordset类做数据查询时碰到的问题 求前辈指导 问一下:有没有关于视频图像的轮廓线提取与检测方面的源代码 CArchive的ReadObject 和 WriteObject谁用过,问个小问题 ★★★rocmeteor(流星雨)快来!我要谢你(只有给分了,呵呵)!★★★ 从CWnd继承的类实例,如何在运行时调整该实例窗口的大小呢? 编译时,屏蔽警告信息(warning) 如何做(十万火急,在线等)
CreateProcess,ShellExecuteEx,WinExec in win32
CreateProcess吧!
pid_t fork(void);
pid_t vfork(void);返回值:
-1 : 失败。0 : 子程序。>0 : 将子程序的process id传回给父程序。在Linux下fork()及vfork()是相同的东西。范例一: fork.c在这个范例中,我们示范fork()的标准用法。
#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 */ }
}编译:gcc -o ex1 fork.c执行结果:./ex1 &
hello
my child is 8650
I am child!我们可以见到,使用fork(),可将一个程式分岐成两个。在分歧之前的程式码只执行一次。检验行程:ps | grep ex18649 p0 R 0:40 ./ex18650 p0 R 0:40 ./ex18649是父程序的pid,8650则为子程序的pid。您会需要用到"killall ex1"来杀掉两个行程。