首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重定向到stdin,以便在vxworks 6.7中执行脚本

重定向到stdin,以便在vxworks 6.7中执行脚本
EN

Stack Overflow用户
提问于 2014-08-27 14:04:20
回答 1查看 1K关注 0票数 2

我需要在vxWorks 6.7中执行一个脚本。这可以用vxworks 5.5中的execute()函数来完成。我正在应用的解决方案是使用stdin重定向,如下代码所示:

代码语言:javascript
运行
复制
    newStdIn = open("myScript.txt",O_RDONLY,0644);
    oldStdIn=ioGlobalStdGet(STD_IN);
    ioGlobalStdSet(STD_IN, newStdIn);
    /*Read file here and execute*/
    ioGlobalStdSet(STD_IN,oldStdIn); /*Restore old stdIn*/
    close(newStdIn);

我遗漏了读和执行部分(注释在其中)。

编辑:根据vxworks内核程序员指南,执行脚本的方法如下:

代码语言:javascript
运行
复制
    fdScript = open ("myScript", O_RDONLY);
    shellGenericInit ("INTERPRETER=Cmd", 0, NULL, &shellTaskName, FALSE, FALSE, fdScript, STD_OUT, STD_ERR);
    do
       taskDelay (sysClkRateGet ());
    while (taskNameToId (shellTaskName) != ERROR);
    close (fdScript);

但是它将在不处理脚本的情况下打开一个新的shell。问题是,在调用shellGenericInit之后,我的应用程序不会做任何事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-19 14:54:26

看起来您正在启动一个Cmd shell,而不是一个C解释器shell。由于您在5.5中提到使用了execute()函数,我假设您的脚本是为C解释器编写的。

尝试将"INTERPRETER=Cmd“改为"INTERPRETER=C”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25529269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档