Armadilloフォーラム

ATDE上でC言語コンテナのprintf文の出力を確認する方法について

yumax

2025年9月29日 19時12分

お世話になっております。

Armadillo-X2を使用し、C言語のコンテナでタッチパネルを使用して、タッチした座標を表示するアプリを作成しています。

このアプリは、ATDE上の「C New Project」をベースに変更を加え、「Generate development swu」で development.swu を作成し、Armadillo-X2にインストール後、「App run on Armadillo」を実行しました。

しかし、ATDEのコンソール上では「Starting 'プロジェクト名'」の表示で止まっており、プログラム内に埋め込んだ printf 文の出力が表示されません(app.conf は set_command c_launch のまま変更していません)。なお、podman ps コマンドでは、コンテナは running 状態です。

一方、実行中のコンテナに podman exec -it [コンテナID] bash で入って c_launch コマンドを実行すると、printf 文の出力が確認できます。

Pythonで作成したコンテナでは、ATDE上に print 文の出力が表示されましたが、C言語で作成したコンテナでも同様に printf 文の出力をATDE上で確認することは可能でしょうか。可能な場合はどうすれば、出力することができるのでしょうか。また、C言語コンテナの printf 文の出力を確認するには、どこで確認するのがベストでしょうか。

お忙しいところ恐れ入りますが、ご教示いただけますと幸いです。
どうぞよろしくお願いいたします。

コメント

at_satoshi.ohta

2025年9月30日 11時50分

太田です。

最新の C 言語プロジェクトをダウンロードして、例えばサンプルプログラムの blink() 内に printf を書き込んで「App run on Armadillo」を実行すると VS Code 上のターミナルに printf 文の出力が確認できているので再現はできませんでした。

現在開発中の C 言語プロジェクトの main() に
(サンプルプログラムの app/src/main.c 参照)

 // disable buffer for output in container as it is buffered and not displayed
    setvbuf(stdout, NULL, _IONBF, 0);
    setvbuf(stderr, NULL, _IONBF, 0);
    // wait for buffer changes to take effect
    sleep(1);

を記述して [App run on Armadillo] を実行してみるとどうなりますでしょうか?

それでも出力されない場合は最新の C 言語プロジェクトをダウンロードして、ソースコードや設定ファイルを移した上で同様に上記のコードを追加して [App run on Armadillo] しても表示されませんでしょうか?

ちなみに現在お使いの C 言語プロジェクトが最新かどうかは

atmark@atde9:~/my_project$ cat .version 
1.1.11

で確認できます。

ご確認よろしくお願いいたします。