c语言如何在新窗口启动进程啊?急用啊,如能帮我解决,再追加分

Python08

c语言如何在新窗口启动进程啊?急用啊,如能帮我解决,再追加分,第1张

明白了,那下边这段代码正好是你要的,有点类似多线程并发执行的感觉,你试试看把

#include <dos.h>

#include <stdio.h>

#include <stdlib.h>

#ifdef _WIN32

#include <windows.h>

#else

#include <time.h>

#endif

int main(){

int i

#ifdef _WIN32

system("start ping 192.168.100.101 -t")

#else

system("xterm -hold -e ls -l &")

#endif

for(i = 0i <1000i++) {

#ifdef _WIN32

Sleep(1000)

#else /* UNIX */

struct timespec ts

ts.tv_sec = 1

nanosleep(&ts, &ts)

#endif

printf("%d\n", i)

}

}

开机启动程序一般是操作系统启动后启动的程序

所以不同的操作系统有不同的开机启动方法

以windows为例可以使用注册表也可以将程序复制到开机启动的某个文件夹里

注册表则一般可以有以下几处

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion

\Run;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion

\Runonce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

\Run;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

\RunOnce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

\RunOnceEx

等等这些位置

c语言的话可以通过system函数调用reg程序来进行对注册表的操作

也可以使用windows所提供的api

RegCreateKeyEx

RegOpenKeyEx

RegSetValueEx

等等这些注册表操作的函数来完成

而linux操作系统(基于linux内核发布的发行版本统称)就与windows不同

一般linux上开机自启可以从自启脚本上进行添加

比如/etc/rc.loca /etc/rc[2-5].d/目录下等等

只需要将要自启的程序路径写入到自启文件里就可以了

c语言也只需要操作文件的函数就能完成

另外也可以使用其它的方法来达到自启的方法

比如感染某个开机自启程序

方法是将自己要启动的程序的代码“注入“到某个开机自启的程序中

比如windows的explorer.exe等

方法可以是将explorer.exe替换成我们的程序

然后奖explorer.exe这个程序移动到其它目录或者更改名称

而我们的程序除了完成我们本身的功能外再多加一个功能,该功能用来创建一个进程调用原有的explorer.exe程序

这样就可以达到开机自启的目的了

当然我们也可以使用一个新的程序来替换explorer.exe

程序的功能有两个,一个是启动我们要自启动的程序,一个用来启动原有的explorer.exe程序

自然也可以将我们要启动的程序的代码直接添加在explorer.exe的头部或者尾部,头部再添加一个代码用来对这个添加完成的最终文件进行切割,切割成两个可执行程序,一个是我们要启动的程序,一个是原有的explorer.exe程序,再分别调用它们

该方法同样也可以用在linux系统上或者其它系统上

总之开机自启的方法有很多

但不同的操作系统的具体方法却不同

(前面的地方没有做过任何修改,这里的地方专给认证人员的

我的答案完全自己手写,请将你认为我是复制粘贴来的地址给我,谢谢)

在C语言中,程序重启自身可以通过调用exec或者system函数实现。下面是两种实现方法:

方法一:使用exec函数实现程序重启

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

int main()

{

printf("Program is running...\n")

// 休眠5秒钟

sleep(5)

printf("Program will restart now...\n")

// 使用exec函数重启程序

char *args[] = {"./program", NULL}

execvp(args[0], args)

return 0

}

方法二:使用system函数实现程序重启

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

int main()

{

printf("Program is running...\n")

// 休眠5秒钟

sleep(5)

printf("Program will restart now...\n")

// 使用system函数重启程序

system("./program")

return 0

}

需要注意的是,无论是使用exec函数还是system函数,都需要将程序的可执行文件名作为参数传入。另外,程序在重启之前需要先将需要保存的数据进行保存,否则数据会丢失。