怎么让system函数不等待执行

时间:2023-01-31 12:33:21
system( "start www.google.com" );
printf( "ok\n" );
怎么能让shell不等待,继续执行下面代码?谢谢

12 个解决方案

#1


引用楼主 xiongyouyi 的帖子:
system( "start www.google.com" ); 
printf( "ok\n" ); 
怎么能让shell不等待,继续执行下面代码?谢谢


实际上shell并未等待,你看看shell中已有ok字样
我在Windows的测试结果

#2


我新建一个console工程,执行挺快的,
但是在我现在的三维场景中,点击某个实体弹出网址,
printf("aa\n");
system( "start www.google.com" ); 
printf("bb\n");

aa出来了半分钟之后bb才出来,不知道是怎么回事?

在linux下好像有个nohup参数,不知道win下有没有

#3


用 execv  函数启动看看

#4


引用 2 楼 xiongyouyi 的回复:
我新建一个console工程,执行挺快的, 
但是在我现在的三维场景中,点击某个实体弹出网址, 
printf("aa\n"); 
system( "start www.google.com" ); 
printf("bb\n"); 

aa出来了半分钟之后bb才出来,不知道是怎么回事? 

在linux下好像有个nohup参数,不知道win下有没有


我这里马上就有bb出来,是不是你网络有问题,网络慢

#5


_execv启动倒是挺快的,打开网页把我的程序也给关了。

网络没问题,关键是bb没出来

#6


你在什么平台下
我的是Win XP SP2

#7


system( "dir c:\\" );挺快的。

win xp sp3

程序界面用的gtk+,没用到mfc,
在gtk的一个按钮消息下执行这段代码

#8


新建一个console工程,只有

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   printf( "aa\n" );
   system( "start www.google.com" ); 
   printf( "bb\n" ); 

   return 0;
}  

试试怎么样

#9


确实和gtk有关,

int main (int argc, char *argv[])
{  
    gtk_init( &argc, &argv );//初始化gtk
    ...
    frmmain = create_frmmain();//创建gtk主界面
    //测试
    printf("aa\n");
    system("start www.baidu.com");
    printf("bb\n");
}


当测试放在create_frmmain();之前是没有问题的,之后就需要等大概一分钟。

我瞎猜的:system()触发一个线程,而gtk主界面也也是一个线程,在一个线程启动另一个线程会不会有问题呢

#10


start默认就是nowait的吧。还有个/wait参数。

#11


我就是想打开一个网址,无论他用什么操作系统和浏览器,
还有其他方法吗?

#12


引用 10 楼 iambic 的回复:
start默认就是nowait的吧。还有个/wait参数。


是这样,关键是在gtk环境下不行啊

#1


引用楼主 xiongyouyi 的帖子:
system( "start www.google.com" ); 
printf( "ok\n" ); 
怎么能让shell不等待,继续执行下面代码?谢谢


实际上shell并未等待,你看看shell中已有ok字样
我在Windows的测试结果

#2


我新建一个console工程,执行挺快的,
但是在我现在的三维场景中,点击某个实体弹出网址,
printf("aa\n");
system( "start www.google.com" ); 
printf("bb\n");

aa出来了半分钟之后bb才出来,不知道是怎么回事?

在linux下好像有个nohup参数,不知道win下有没有

#3


用 execv  函数启动看看

#4


引用 2 楼 xiongyouyi 的回复:
我新建一个console工程,执行挺快的, 
但是在我现在的三维场景中,点击某个实体弹出网址, 
printf("aa\n"); 
system( "start www.google.com" ); 
printf("bb\n"); 

aa出来了半分钟之后bb才出来,不知道是怎么回事? 

在linux下好像有个nohup参数,不知道win下有没有


我这里马上就有bb出来,是不是你网络有问题,网络慢

#5


_execv启动倒是挺快的,打开网页把我的程序也给关了。

网络没问题,关键是bb没出来

#6


你在什么平台下
我的是Win XP SP2

#7


system( "dir c:\\" );挺快的。

win xp sp3

程序界面用的gtk+,没用到mfc,
在gtk的一个按钮消息下执行这段代码

#8


新建一个console工程,只有

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   printf( "aa\n" );
   system( "start www.google.com" ); 
   printf( "bb\n" ); 

   return 0;
}  

试试怎么样

#9


确实和gtk有关,

int main (int argc, char *argv[])
{  
    gtk_init( &argc, &argv );//初始化gtk
    ...
    frmmain = create_frmmain();//创建gtk主界面
    //测试
    printf("aa\n");
    system("start www.baidu.com");
    printf("bb\n");
}


当测试放在create_frmmain();之前是没有问题的,之后就需要等大概一分钟。

我瞎猜的:system()触发一个线程,而gtk主界面也也是一个线程,在一个线程启动另一个线程会不会有问题呢

#10


start默认就是nowait的吧。还有个/wait参数。

#11


我就是想打开一个网址,无论他用什么操作系统和浏览器,
还有其他方法吗?

#12


引用 10 楼 iambic 的回复:
start默认就是nowait的吧。还有个/wait参数。


是这样,关键是在gtk环境下不行啊