如何在windows系统下用C(C++)语言实现LINUX(UNIX)下的fork函数的调用 C语言使用system()函数不具有管理员权限

作者&投稿:双浅 (若有异议请与网页底部的电邮联系)
在window下没有一个函数可以实现UNIX下的fork()函数,其原因是历史造成的.对于UNIX来说它一出生就是多用户的系统,所以它的所有进程都共有一个最原始的父进程init.而windows生下来时是个单用户系统(DOS),不存在这样的概念.所以fork这个函数是UNIX下特有的.

如果硬要模似,CreateProcess()不如用CreateThread()更接近实际情况,把主thread中的所有公共变量都塞入一个结构/类的,带入新的thread中,这样可以大致完成"复制自身"的要求.

但由于是thread,所以主thread死后,子thread不能独立存在,而fork()出来的子进程可以脱离主进程独立存在,这一点在window下只有CreateProcess()才略有相似之处.

总之,实现类似fork()的功能在window下是复杂,必须个案处理,无法"一言以蔽之曰".

win32API里自己有创建线程用的函数,为什么一定要仿照fork呢?这本来就是两个不同的操作系统,思想也不一样。随便google一下都能找到。

C语言中调用system()函数弹出dos窗口如何隐藏?~

1、调用system函数时用start的/b参数,system("start /b ping 10.10.10.11 -t"); 即可隐藏窗口。
2、system函数:原型:int system(const char * command);功能:执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名;说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;头文件:stdlib.h;返回值:命令执行成功返回0,执行失败返回-1。3、例程:
#include#includeint main(){ system("start /b ping 10.10.10.11 -t"); return 0;}

运行C语言的程序时,右键属性,选中以管理员权限运行。 在程序中,使用system函数便有管理员权限。
1、system函数:原型:int system(const char * command);功能:执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名;说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;头文件:stdlib.h;返回值:命令执行成功返回0,执行失败返回-1。2、例程:
#include#includeint main(){ system("del C:\\123.txt");//在控制台中,执行命令del C:\\123.txt,删除C盘目录下的123.txt文件 return 0;}

想用c/c++写windows编程,又不想学MFC怎么办?
答:MFC本身是基于windows api,其类库封装了一些常用的图形控件。如果你想写带图形界面的程序,建议使用带界面设计的IDE,如C++ Builder、VS中的MFC 等等,这些都提供了界面设计,这样你就不必要在界面设置上花太多时间。现在就看你想不想写带界面的应用程序,如果不想带界面只使用简单的命令行,直接选用VS...

C语言到底能干什么 ??
答:循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的...

C与C++的共性、C与Java的共性、C++与 Java共性。请详细的分析一下...
答:c这一内的低级语言 需要程序员的逻辑能力强才行C语言与C++的区别有很多: 1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。 2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大...

想了解C语言,求指导
答:回答:C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它...

C 语言适合在linux系统上学习还是在Windows系统上学习好?Windows系统...
答:给你一个最简单的说法吧,在win下面,你要学习c,首先要有个环境,也就是那个trobe c或者c++ 2005什么的,然后才在里面编译。如果在linux下,随便建立一个文本文档,写一段c,然后改后缀为.c在终端里面运行一下 ogg,这就ok了。linux是用c写成的,所以,要学习的话,linux可是很厉害的。但是在咱们...

windows键有何用处?
答:Win+Ctrl+F 打开Windows查找计算机窗口 Win+D 快速显示/隐藏桌面 Win+R 打开运行对话框,重新开始一个Windows任务 Win+L 在Windows XP中快速锁定计算机 Win+Tab 在目前打开的多个任务之间切换,按下回车键即变成当前任务 Win+Break 打开“系统属性”窗口 2.Windows中通用键 按键 操作 CTRL+C复制 CTRL...

电脑中本地磁盘(C:)哪些文件可以安全删除???
答:目的:删除程序中不用的组件。 3三、Windows目录也可清理 不要被“C:\Windows”所吓倒,这里面同样有不少东西可删除。在这个目录下,“.BAK、.BMP、.OLD、.TMP”类型的文件可以删除。除SchedLgU.txt(它被用于计划任务程序服务),“.TXT”文件也可删除。另外,clock.avi、Control.ini文件也可删除,它不会对系统造成...

linux C/C++跟Windows下c/c++有何不同?如何学习?
答:2 系统api不同。在linux下面,是没有临界区域的,因此同步等操作,需要依靠互斥体。而window下面两者都有 3 系统环境不一样。比如文件路径的格式、环境变量的配置等等 4 编译环境不一样。在linux下面主要是依靠gcc编译,而window下面主要靠微软提供的编译器编译 5 开发目标也有区别。linux下面C/C++主要...

学完了C和C++,想学Windows编程,但《windows程序设计》(第5版)等书看...
答:如果想在WIN平台兼容没有安装.NETFRAMEWORK的机器,比如WIN2000 那么可以用VB 比如MFC来 VB 太好学了,而且功能同样强大。 我在熟悉了C#和C之后 ,有一次用VB开一个光盘自动运行的软件,在完全没有VB基础的情况下,仅用一小时读了一下,VB的相关语法,然后就直接上去写,不会就上网查一下,这样...

程序语言,操作系统,编译器三者之间有何关系?
答:汇编语言的编译器很多,像MASM,NASM,TASM,gas等等,编译器不一定用什么语言来写,像pascal最初的时候编译器本身是用汇编和pascal语言写的,但大部分编译器是用C语言来写的.windows向来封闭,不知道是用什么写的,应该是用C吧。C是一种编程语言,windows是一种操作系统,二者没有直接关系。C的各个版本...