免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: lihongzhang

求救:一个gtk编程问题!(毕设告急) [复制链接]

论坛徽章:
0
发表于 2006-05-18 11:33 |显示全部楼层
简单的可以用标准库函数popen()。
或者用你所说的g_spawn_async_with_pipes(NULL, "./abc", NULL, 0, NULL, &cpid, &cstdin, &cstdout, &stderr, NULL); 函数也可以,
不过这里的cstdin, cstdout, stderr就只能通过系统调用read(), write()函数来使用了。
以你的题目为例,应该用
write(cstdin, "read_verilog full_add16.v\n", strlen);
...

论坛徽章:
0
发表于 2006-05-18 20:54 |显示全部楼层
我试过,但是好像不行
我是这么写的
write (cstdin,"read_verilog full_add16.v\n",strlen);
write (cstdin,"write_blif full_add16.blif\n",strlen);
我自己感觉这么写没有道理,怎觉得怪怪的,但是不这么写,有不知道怎么写?

[ 本帖最后由 lihongzhang 于 2006-5-18 20:58 编辑 ]

论坛徽章:
0
发表于 2006-05-19 19:56 |显示全部楼层
那是因为你用错了函数的参数。

g_spawn_async_with_pipes函数的第二个参数应该是一个char **类型的,而你用的却是char *类型的,当然出错了。

  1.     char *cmd[]={"./abc", 0};
  2.     int input, output, r;
  3.     g_spawn_async_with_pipes(NULL,
  4.                                                 cmd,
  5.                                                 NULL,
  6.                                                 0,
  7.                                                 NULL,
  8.                                                 NULL,
  9.                                                 NULL,
  10.                                                 &input,
  11.                                                 &output,
  12.                                                 NULL,
  13.                                                 NULL);
  14.         write(input, "read_verilog full_add16.v\n", 26);
复制代码

论坛徽章:
0
发表于 2006-05-19 21:24 |显示全部楼层
楼上说的这个不是问题,我写的时候已经注意到这个了
我说的是后面的问题,好像程序就没有执行一样,什么反应都没有
我想是后面对cstdin和cstdout处理的时候出问题了,但我不知道怎么处理,让输入的命令起作用?
希望有人解答一下,可以的话给一下主要的处理代码

论坛徽章:
0
发表于 2006-05-21 21:04 |显示全部楼层
自己perror看看到底出了什么问题吧。
我在本地写了好几个程序,完全没有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP