パピーでプログラミングしてみる(初級編)
パピーで使用されている言語
・シェルスクリプト
多用されている。
パピー431日本版ヘルプファイル(/usr/share/doc/help/ja/HOWTO-program.htm)より引用
本家フォーラムメンバーでは達者な方々が使用。バリーさんもたまに使用。
同ヘルプファイルより引用
非常に期待されている。現在はまだ発展途上。
同ヘルプファイルより引用
・GTK
グラフィカルなインターフェイスを作成するためのツールキット。シェルスクリプトでもC言語でも書ける。
・Xdialog
グラフィカルなインターフェイスを作成するためのツールキット。シェルスクリプトで書く。補助的に使用。
・その他メッセージ出力系のコマンド
yaf-splash、dialog、xmessage、gxmessage ....などなど。
・やや敬遠されているもの
Tcl/Tk、Python、QT ....などなど。
多用されている。
パピー431日本版ヘルプファイル(/usr/share/doc/help/ja/HOWTO-program.htm)より引用
・C言語シェルスクリプトはコンパイルせずに実行可能なテキストファイルのプログラムです。シェルスクリプトはとても洗練された書き方が可能で、パピーにはそれらのプログラムが多数存在しています。
本家フォーラムメンバーでは達者な方々が使用。バリーさんもたまに使用。
同ヘルプファイルより引用
・Vala/Genie全ての C/C++ アプリケーションをコンパイルするためのツールは devx_xxx.sfsと名付けられたアドオンファイルの中に見付けることができます。SFS(と呼ぶ) ファイルの概要はオンラインのこのページで読むことができます: http://puppylinux.com/development/packa ... gement.htm
非常に期待されている。現在はまだ発展途上。
同ヘルプファイルより引用
これこそ未来です。ValaとGenieはあらゆる面で C/C++を凌ぐプログラミング言語です。 Valaは C#に似た構文であり、Genieは Pythonに似た構文です。これらは実は同じ一つのコンパイラが異なる2とおりの構文を受け入れているのです。
Vala/Genieは真のコンパイラ言語で、非常に効率のよいコードを生成します。いずれもとくにGTKアプリケーションを書くのに優れています。私は「devx」SFSファイルにVala/Genieコンパイラーを、そのドキュメントとValaIDEとともに入れておきました。
・GTK
グラフィカルなインターフェイスを作成するためのツールキット。シェルスクリプトでもC言語でも書ける。
・Xdialog
グラフィカルなインターフェイスを作成するためのツールキット。シェルスクリプトで書く。補助的に使用。
・その他メッセージ出力系のコマンド
yaf-splash、dialog、xmessage、gxmessage ....などなど。
・やや敬遠されているもの
Tcl/Tk、Python、QT ....などなど。
最後に編集したユーザー 新谷 [ 10/02/20(土) 00:30 ], 累計 1 回
有益なリンク
・C言語
ウェブ上で見つけた超シンプルな入門チュートリアル http://www.nmn.jp/~hidai/c/
・Vala/Genie
バリーさんが簡易的な入門チュートリアルを書いてます。 http://bkhome.org/genie/index.html
・GTK (シェルスクリプトの場合)
devxを使用しているなら、/usr/share/doc/gtkdialog3/examples/ に豊富なサンプルコードがあります。
ウェブ上で見つけた超シンプルな入門チュートリアル http://www.nmn.jp/~hidai/c/
・Vala/Genie
バリーさんが簡易的な入門チュートリアルを書いてます。 http://bkhome.org/genie/index.html
・GTK (シェルスクリプトの場合)
devxを使用しているなら、/usr/share/doc/gtkdialog3/examples/ に豊富なサンプルコードがあります。
有益なリンク・GTK (C言語の場合)
先日、「入門GTK+ 」(菅谷保之・著、オーム社、3000円) という本を買ったのですが、ウェブ上でそのサンプルコードが公開されていました。書籍の内容も一部公開されています。
結構太っ腹なんじゃないだろうか。
http://www.iim.ics.tut.ac.jp/~sugaya/wi ... 0#s8b2472b
結構太っ腹なんじゃないだろうか。
http://www.iim.ics.tut.ac.jp/~sugaya/wi ... 0#s8b2472b
とりあえずC言語でハローワールド
とりあえずC言語でハローワールド(メンドクサイ編)
ところで、下記のようにするとシェルスクリプト的にコマンドが使えます。
面倒くさい時にいいんじゃなかろうか...。
面倒くさい時にいいんじゃなかろうか...。
コード: 全て選択
#include <stdio.h>
#include <stdlib.h> /* これを入れて置くと..... */
int main (void)
{
system ("echo Hello World!"); /* system()関数でコマンドが使える */
}
-
- 記事: 380
- 登録日時: 09/09/18(金) 01:54
Re: パピーでプログラミングしてみる(初級編)
>hello.c の内容
>コード: 全て選択
>#include <stdio.h>
>int main(void)
>{
> printf("Hello, world!\n");
>}
int なら return で値を返すべきではないでしょうか?
ついでに void main( void ) ってLinuxでは反則なんでしょうか?(Cは知っていてもLinuxでまとまったものを書いたことがないので)
MS-DOS時代、system なんぞメモリが気になって滅多に呼べなかったなあ(遠い眼)
>コード: 全て選択
>#include <stdio.h>
>int main(void)
>{
> printf("Hello, world!\n");
>}
int なら return で値を返すべきではないでしょうか?
ついでに void main( void ) ってLinuxでは反則なんでしょうか?(Cは知っていてもLinuxでまとまったものを書いたことがないので)
MS-DOS時代、system なんぞメモリが気になって滅多に呼べなかったなあ(遠い眼)
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))
Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))
Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
Re: パピーでプログラミングしてみる(初級編)
Endeavor_wako さんのおっしゃってることは正しいと思います。main()もひとつの関数ですから、終了コードを返し、これは int です。Endeavor_wako さんが書きました:>int なら return で値を返すべきではないでしょうか?
ついでに void main( void ) ってLinuxでは反則なんでしょうか?
returnが無い場合は最後に実行された文の終了コードが返されるので、いちおう動きます。
また int main( void ) でなく void main( void )でも動くみたいですが、intのほうが良いのでしょうね(Dosでも)。
http://www.6809.net/tenk/html/cgokai/int_main.htm
The bar master, Shino's Bar
http://shinobar.net/
http://shinobar.net/
Re: パピーでプログラミングしてみる(初級編)
諸先輩方、つっこみありがとうございます!!
なにせトピックを立てた人の技術力が圧倒的に不足してますので、これからも鋭いツッコミをして頂ければ有難いです<(_ _)>
なにせトピックを立てた人の技術力が圧倒的に不足してますので、これからも鋭いツッコミをして頂ければ有難いです<(_ _)>
とりあえずC言語でハローワールド (ちゃんとしたやつ編)
Endeavor_wakoさん、シノバーさん、ツッコミ有難うございます。勉強になりました。
コード: 全て選択
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
最後に編集したユーザー 新谷 [ 10/02/20(土) 13:03 ], 累計 1 回
とりあえずC言語でハローワールド (超ちゃんとしたやつ編)
なぜかGNUプロジェクトの一環としてメンテナンスされているパッケージがあります。
http://ftp.gnu.org/gnu/hello/
コンパイルの仕方、パッケージの構成、シンプルなコードの書き方、などを学ぶいい教材ではなかろうか....。
http://ftp.gnu.org/gnu/hello/
コンパイルの仕方、パッケージの構成、シンプルなコードの書き方、などを学ぶいい教材ではなかろうか....。
ネットラジオを聴くアプリ (前フリ)
ところで、ある日僕はとか、コマンドラインから実行することでネットラジオが聴けることを発見しました。
色々調べて、色々試してうまくいった時は「やったぜ!」と思いました。
で、毎回コマンドを打つのは面倒なので、これをGTKを使ったアプリケーションにしたいと思ったのでした。
コード: 全て選択
#wget -q -O - http://anime.com.pl:8000/radioLQ.mp3 | madplay - &
色々調べて、色々試してうまくいった時は「やったぜ!」と思いました。
で、毎回コマンドを打つのは面倒なので、これをGTKを使ったアプリケーションにしたいと思ったのでした。
ネットラジオを聴くアプリ (プロトタイプ)
で、とりあえず超シンプルなスクリプトで実装してみた。
madplay-radio-000
最後のほうがよく分かってない.....。が、分からないなりに結構応用が効くのではないだろうか.....。
実行するには、上記のコードを適当な名前(例えばmadplay-radio-000)で保存して、
↓こんな感じになります。
madplay-radio-000
コード: 全て選択
#!/bin/sh
export MAIN_DIALOG="
<window title=\"ラジオ000\">
<vbox>
<hbox>
<button>
<label>ネットラジオを聴く</label>
<action>wget -q -O - http://anime.com.pl:8000/radioLQ.mp3 | madplay - &</action>
</button>
<button tooltip-text=\"停止 - このボタンで停止させてからウィンドウの「x」ボタンでアプリを終了して下さい\">
<input file stock=\"gtk-media-stop\"></input>
<action>killall madplay &</action>
</button>
</hbox>
</vbox>
</window>
"
I=$IFS; IFS=""
for STATEMENTS in $(gtkdialog3 --program=MAIN_DIALOG --center ); do
eval $STATEMENTS
done
IFS=$I
実行するには、上記のコードを適当な名前(例えばmadplay-radio-000)で保存して、
コード: 全て選択
# chmod +x madplay-radio-000
# ./madplay-radio-000
シェルから gtkdialog3 を使う
ここですか?新谷 さんが書きました:最後のほうがよく分かってない.....。
コード: 全て選択
I=$IFS; IFS=""
for STATEMENTS in $(gtkdialog3 --program=MAIN_DIALOG --center ); do
eval $STATEMENTS
done
IFS=$I
ここは for を使わず、単純に次の1行でOKです。
コード: 全て選択
eval $(gtkdialog3 --program=MAIN_DIALOG --center )
そうでない出力が出るような使い方では、もう少していねいにフィルタを掛けると良いかもしれません。たとえば
コード: 全て選択
eval $(gtkdialog3 --program=MAIN_DIALOG --center| grep '^EXIT=' )
コード: 全て選択
gtkdialog3 --program=MAIN_DIALOG --center >/dev/null
最後に編集したユーザー シノバー [ 10/02/20(土) 14:20 ], 累計 1 回
The bar master, Shino's Bar
http://shinobar.net/
http://shinobar.net/
ネットラジオを聴くアプリ (もっと単純版)
コード: 全て選択
#!/bin/sh
export MAIN_DIALOG="
<window title=\"ラジオ000\">
<vbox>
<hbox>
<button>
<label>ネットラジオを聴く</label>
<action>wget -q -O - http://anime.com.pl:8000/radioLQ.mp3 | madplay - &</action>
</button>
<button tooltip-text=\"停止 - このボタンを押すと演奏が停止します\">
<input file stock=\"gtk-media-stop\"></input>
<action>killall madplay &</action>
</button>
</hbox>
</vbox>
</window>
"
gtkdialog3 --program=MAIN_DIALOG
killall madplay
The bar master, Shino's Bar
http://shinobar.net/
http://shinobar.net/