組み込み技術を向上したい!!

でも組み込み以外にも手を出し始めました・・・

C言語のプログラムからshellを実行する

例えばシステムのシャットダウンするときは

sudo shutdown -h now

とかすると思うんだけど、これをC言語のプログラムから実行したい場合は↓みたいにするといい。

まずshellのファイルを作る。(ファイル名はsys_down.shとしてみる)

#!/bin/sh
sudo shutdown -h now
exit 0

次に上で作ったshellをコールするためのC言語のプログラムを準備する。

#include <stdlib.h>
int main(void) 
{ system("bash sys_down.sh"); return 0; }

これだけでO.K.

んで、無限ループでポーリングするようなプログラムを実行するような内容
のshellとかだとブロックされてしまうこともあるかと思うので、その時は

system(“bash sys_down.sh”);

と書かずに、最後に&を付けて

system(“bash sys_down.sh &”);

としてやるとブロックされずにバックグランドでshellが実行される。

 

RaspberryPiで

sunnydays-k.hatenablog.com

で使ったWebIOPiでC言語のプログラムを実行したい
と思ったので、こんなことやってみた。

結果はちゃんと動いてくれたので満足だけど、無限ループさせるようなプログラムだと
不要になったときにプロセスをkillするのを忘れんように。。。

ちなみに

sunnydays-k.hatenablog.com

はそれなりに参考になると思う。

Good Luck!!!