当前位置: 技术问答>linux和unix
shell中执行c程序的问题
来源: 互联网 发布时间:2016-09-27
本文导语: 我有一个shell脚本,叫run.sh,系统开机时自动执行调用的脚本。 里面有一些命令,如: insmod 。。。 mknod。。。 gemfield。。。//这是我自己写的c语言程序,程序路径在PATH变量中 但监测发现gemfield在开机时没有执行或...
我有一个shell脚本,叫run.sh,系统开机时自动执行调用的脚本。
里面有一些命令,如:
insmod 。。。
mknod。。。
gemfield。。。//这是我自己写的c语言程序,程序路径在PATH变量中
但监测发现gemfield在开机时没有执行或者是至少没有执行成功。mknod等是执行成功的
但gemfield在terminal执行是成功的,原因可能是什么
里面有一些命令,如:
insmod 。。。
mknod。。。
gemfield。。。//这是我自己写的c语言程序,程序路径在PATH变量中
但监测发现gemfield在开机时没有执行或者是至少没有执行成功。mknod等是执行成功的
但gemfield在terminal执行是成功的,原因可能是什么
|
建议:
把
if(如果打开/dev/tty失败的话)
{
exit(-1);
}
改成:
int i;
while (如果打开/dev/tty失败的话) {
if (i>10)
exit(-1);
i++;
sleep(1);
}
把
if(如果打开/dev/tty失败的话)
{
exit(-1);
}
改成:
int i;
while (如果打开/dev/tty失败的话) {
if (i>10)
exit(-1);
i++;
sleep(1);
}
|
一个需要考虑是不是在PC上运行,如果是嵌入式板上跑的话,需要用交叉编译,编译完后,可以看看你生成的gemfield有没有可执行的权限,就是X,如果没有的话,就需要chmod来改变,在脚本里调用的时候,需要加入点命令,“./gemfield”这样去调用。
|
那这个貌似就不好办了?tty开机最后启动的。不知道有没有办法让它先启动。或者把你那shell脚本设置为用户登录的时候自动运行就可以了。
|
insmod 。。。
mknod。。。
gemfield。。。//这是我自己写的c语言程序,程序路径在PATH变量中
----------------
你那个c程序有没有依赖于什么特殊的环境变量?
是纯字符界面的程序还是有带图形界面的?
你就加上全路径试试吧 而且在脚本里使用一些东西 我都推荐使用权路径
mknod。。。
gemfield。。。//这是我自己写的c语言程序,程序路径在PATH变量中
----------------
你那个c程序有没有依赖于什么特殊的环境变量?
是纯字符界面的程序还是有带图形界面的?
你就加上全路径试试吧 而且在脚本里使用一些东西 我都推荐使用权路径