linux下使用
采用sh的模式,会导致开机alt+f2无法正常使用。故替换之#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int ret, i, status;
char *child_argv[200] = {"/usr/share/TSMIS/bin/TSMIS_JK"};
pid_t pid;
while(1)
{
pid = fork();
if (pid == -1)
{
fprintf(stderr, "fork() error.errno:%d error:%s\n", errno, strerror(errno));
break;
}
if (pid == 0)
{
ret = execlp(child_argv[0],child_argv[0],(char*)0);
if (ret < 0)
{
fprintf(stderr, "execv ret:%d errno:%d error:%s\n", ret, errno, strerror(errno));
continue;
}
exit(0);
}
if (pid > 0)
{
//pid = wait(&status);
//
waitpid(pid,&status,0);
fprintf(stdout, "wait return");
sleep(5);
}
}
return 0;
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int ret, i, status;
char *child_argv[200] = {"/usr/share/TSMIS/bin/TSMIS_JK"};
pid_t pid;
while(1)
{
pid = fork();
if (pid == -1)
{
fprintf(stderr, "fork() error.errno:%d error:%s\n", errno, strerror(errno));
break;
}
if (pid == 0)
{
ret = execlp(child_argv[0],child_argv[0],(char*)0);
if (ret < 0)
{
fprintf(stderr, "execv ret:%d errno:%d error:%s\n", ret, errno, strerror(errno));
continue;
}
exit(0);
}
if (pid > 0)
{
//pid = wait(&status);
//
waitpid(pid,&status,0);
fprintf(stdout, "wait return");
sleep(5);
}
}
return 0;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步