【求助】如何实现字符串不匹配时的操作

看看 system() 跟 waitpid() 两个函数的 man page 就清楚了      
[QUOTE=dearvoid]看看 system() 跟 waitpid() 两个函数的 man page 就清楚了[/QUOTE]
俺理解错了

SHELL 程序返回的变量值[/COLOR]怎么理解?      
举例来说:
result = `grep string file  | awk '{print $2}'` 这条SHELL 命令

我在C程序中是这么用的:
sprintf(cmd, "%s\n",  "grep string file  | awk '{print $2}'" ) ;
system(cmd);

我想在C 程序中获得$result 的值, 有什么办法?      
得等dearvoid回复了
我只会一点Bash和一点Perl
Perl在照样也是用 ``取返回值
system()只是调用并返回退出状态
复制内容到剪贴板
代码:
huanlf@huanlf-desktop:~$ perl -e ' $a=`echo hello world`; print "$a\n" '
hello world

huanlf@huanlf-desktop:~$
不了解C

另外
如果是不同主题
照理开新主题发问:)      
[QUOTE=oldwell_nirvana]举例来说:
result = `grep string file  | awk '{print $2}'` 这条SHELL 命令

我在C程序中是这么用的:
sprintf(cmd, "%s\n",  "grep string file  | awk '{print $2}'" ) ;
system(cmd);

我想在C 程序中获得$result 的值, 有什么办法?[/QUOTE]
FYI:
There is no way for a child process to pass an environment variable back to its parent process. But you can get the output of a command. The "official" way to do that is to use the popen() function.      
通过popen() 和写临时文件交互是没有问题的。
我想也可能是没有招了, 谢谢大大!      
[QUOTE=oldwell_nirvana]通过popen() 和写临时文件交互是没有问题的。
我想也可能是没有招了, 谢谢大大![/QUOTE]
这个时候 scripting languages 的优势就显现出来了 不过 Python 好像也没有 built-in 的这种 feature, 也只能用 popen()      
嘿嘿,Perl ...