繁体   English   中英

如何使用system()将脚本的返回值返回给ac程序

[英]how to return the return value of a script to a c program using system()

我有一个bash脚本(一个非常基本的脚本),可以从ac程序中使用system()调用。

此脚本调用另一个名为./dslite.sh脚本,该脚本将固件刷新到设备。

如何将./dslite.sh返回的值返回给C程序?

C程序:

system("flash_firmware.sh");

脚本

#!/bin/bash

./dslite.sh --mode flash --config=~/configs/device1_config/c1dut2.ccxml ~/images/$1

在Bash手册页上 ,有关退出状态的部分:

Bash本身会返回最后执行的命令的退出状态,除非发生语法错误,在这种情况下,它会以非零值退出。

这意味着脚本的退出代码将是./dslite.sh脚本的退出代码。

换句话说,您不必做任何事情, system函数的返回值应该是./dslite.sh返回的值。


另一方面,如果您指的是脚本打印输出 ,请改用popen

system()的原型是:

int system(const char *command);

它确实返回一个int

以下摘录来自system()的手册页:

如果所有系统调用均成功,则返回值是用于执行命令的子外壳的终止状态。 (shell的终止状态是它执行的最后一个命令的终止状态。)

因此,只要在创建外壳或外壳的相应子进程时没有错误, system()返回脚本执行的最后一个命令的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM