福大牛二爷 发表于 2012-12-27 09:45:10

如何给一个应用程序传递信息·

我的text.sh 是个循环,应用程序b也是个循环;想实现在text.sh每一次的循环后给b发送消息,说我的(text.sh)一次循环好了;b接到这个信息后,开始这一次循环;b这一次循环结束就继续等待text.sh发来的信息,只有再次收到了才会继续下一次循环;text.sh也是收到了b发给它的信息后才继续下一次循环········这样执行下去。
这些东东没学过多少,不大了解,希望高人给我指点下,这个是否可以实现?我要往哪个方向走!多谢了!{:2_128:}

福大牛二爷 发表于 2012-12-27 09:45:53

wait online······

TQ-ZQL 发表于 2012-12-27 10:30:43

应该可以吧,你一个脚本中写一个循环,用echo 输出一个参数给另个脚本,根据这个参数判断是不是应该启动循环。不过这脚本语言我也不太熟。

福大牛二爷 发表于 2012-12-27 10:40:54

我一个是脚本test.sh;另外一个是应用程序b.exe;

福大牛二爷 发表于 2012-12-27 10:42:15

TQ-ZQL 发表于 2012-12-27 10:30 static/image/common/back.gif
应该可以吧,你一个脚本中写一个循环,用echo 输出一个参数给另个脚本,根据这个参数判断是不是应该启动循环 ...

我一个是脚本test.sh;另外一个是应用程序b.exe;

TQ-ZQL 发表于 2012-12-27 10:43:11

那你做一个tmp文件一个向文件写一个读。

福大牛二爷 发表于 2012-12-27 10:56:16

TQ-ZQL 发表于 2012-12-27 10:43 static/image/common/back.gif
那你做一个tmp文件一个向文件写一个读。

那如果是两个应用程序之间,实现上面的功能么?

TQ-ZQL 发表于 2012-12-27 11:23:30

本帖最后由 TQ-ZQL 于 2012-12-27 15:42 编辑

那也一样的。也可能用其它方式像共享内存,管道,socket等

福大牛二爷 发表于 2012-12-27 11:26:36

本帖最后由 福大牛二爷 于 2012-12-27 11:38 编辑

哦好的!谢谢啊!我试试~~

福大牛二爷 发表于 2012-12-27 11:45:15

TQ-ZQL 发表于 2012-12-27 11:23 static/image/common/back.gif
那也一样的。

再问下:
在shell中我按顺序执行两个程序
./a
./b
是要a执行完毕了,才会接下去执行b的,
如果我在应用程序中用函数调用这两个应用程序,会不会是这样的呢?

TQ-ZQL 发表于 2012-12-27 15:43:51

会的吧,你试下就知道了

福大牛二爷 发表于 2012-12-28 16:46:24

后来用的system()调用程序可以了!

福大牛二爷 发表于 2012-12-31 14:28:23

本帖最后由 福大牛二爷 于 2012-12-31 14:29 编辑

TQ-ZQL 发表于 2012-12-27 10:43 http://www.armbbs.net/static/image/common/back.gif
那你做一个tmp文件一个向文件写一个读。

版主您好,我想问下一个进程里面可以 创建两个有名管道么?因为我弄了两个管道出现了点问题,来此确认下,建立两个管道是否可以!

福大牛二爷 发表于 2012-12-31 15:24:47

#define FIFO1 "./myfifo1"
main(int argc,char** argv)
{char buf_r,w_buf="1111111";
        intfd,fd1;
        intnread,nwrite;
/* 创建管道1*/
unlink(FIFO1); //删除文件
if((mkfifo(FIFO1,O_CREAT|O_EXCL)<0)&&(errno!=EEXIST))
         printf("cannot create fifoserver1\n");
printf("FIFO1 create\n");
/*打开管道1*/
fd1=open(FIFO1,O_WRONLY|O_NONBLOCK,0);       
printf("FIFO1 createsdfdsfsdf\n");
while(1)
{
/*...............................................
...............................................
...............................................*/
        sleep(1);

        /* 向管道1 写入数据 */
if((nwrite=write(fd1,w_buf,100))==-1)
        {printf("FIFO1 create...\n");
        if(errno==EAGAIN)
        printf("The FIFO has not been read yet.Please try later\n");
        }
else
printf("write %s to the FIFO1\n",w_buf);               
}
}
您说这里那里有错?为什么总是写入有错误???
页: [1]
查看完整版本: 如何给一个应用程序传递信息·