当前位置: 技术问答>linux和unix
linux c 怎么调用shell脚本?急问~~ 谢谢
来源: 互联网 发布时间:2016-06-17
本文导语: 最近写了一个小脚本,想用c调用shell脚本(sedtxt),从网上搜的结果,用 #include …………………… system("sedtxt"); ……………… 的方法调用,但是报错sh: sedtxt: command not found,我给这个脚...
最近写了一个小脚本,想用c调用shell脚本(sedtxt),从网上搜的结果,用
#include
……………………
system("sedtxt");
………………
的方法调用,但是报错sh: sedtxt: command not found,我给这个脚本赋权限了。
请教,应该怎么调用shell呢??
#include
……………………
system("sedtxt");
………………
的方法调用,但是报错sh: sedtxt: command not found,我给这个脚本赋权限了。
请教,应该怎么调用shell呢??
|
使用
system("source sedtxt");
或者
system(". sedtxt");
system("source sedtxt");
或者
system(". sedtxt");
|
要写绝对路径名 例如 /root/shell/abc.sh
那么就要 写成 system("/root/shell/abc.sh");
同时也要有权限。 chmod u+x /root/shell/abc.sh
那么就要 写成 system("/root/shell/abc.sh");
同时也要有权限。 chmod u+x /root/shell/abc.sh
|
fork()
exec*()
system()
exec*()
system()
|
system("sedtxt");
setxt的地方要写成全路径
如果在当前路径 那么要写成./sedtxt
另外保证sedtxt有执行权限
setxt的地方要写成全路径
如果在当前路径 那么要写成./sedtxt
另外保证sedtxt有执行权限
|
popen 也可以。。
同楼上几位, 注意路径。
同楼上几位, 注意路径。
|
你这个没路径啊 要写个绝对路径
|
路径不对 把sedtxt放到/usr/bin或者/bin下面
|
如果sedtxt和你的c程序在一个目录下,
就用system("./sedtxt");
或者用source指令。
如果不在,且PATH环境变量中没有sedtxt的存放路径,则需要完整路径。
就用system("./sedtxt");
或者用source指令。
如果不在,且PATH环境变量中没有sedtxt的存放路径,则需要完整路径。
|
fork
exec
system
g_spawn_command_line_async
exec
system
g_spawn_command_line_async
|
建议用exec,这样不要再开辟一个子进程