簡體   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