探検


Linuxプログラミング 2

2010/02/13(土) 14:53:15ID:lCBgsQHj
Linux(特有)のプログラミングに関する話題です

前スレ
http://pc11.2ch.net/test/read.cgi/linux/1118024349/
2012/02/24(金) 23:58:08.48ID:haxmm7fT
>>174
それを2次元配列と言うか…そうだけどさ。あとexechogeはどう宣言する気?
ポインタにしたら長さが分からないし、そうでないなら要素数が変えられない
2012/02/25(土) 00:10:10.32ID:N8ck9GNr
番兵でも入れるでそ
177174
垢版 |
2012/02/25(土) 00:12:12.64ID:4aVapzR1
>>175
exec系のやつって結構種類があるので、それのどれかを使えればいいと思った次第です
うーん 難しい
2012/02/25(土) 00:54:23.44ID:R65aOaFI
シリアライズしてbase64でエンコードしてしまえ
二次元と言わずどんなに複雑な形式でも渡せる

両方自分で作るなら、適当にプロセス間通信してバイナリ
そのまま流し込んだほうが簡単じゃないかと思うが
2012/02/25(土) 11:22:27.40ID:DrSUXVnw
>>178
いやそれは負けだろう。
2012/02/25(土) 13:25:03.24ID:FJpfCqek
単にパイプを用意してプロセス間通信すればいいだけだったりして。
int fd[2];
pipe( fd );
if (fork()==0 )
{
close(fd[0] );
for (;;) { read(fd[1]) ...}
}
close(fd[1]);
for(;;) { write(fd[0])...}
って感じ
2012/02/25(土) 13:35:12.09ID:FJpfCqek
>>174
これは普通の使い方だよ
char str[3]={"-option","dirname",NULL};
execv( "/usr/bin/echo",str );
って感じで使えばstrの文字列が子プロセスのメモリーにコピーされて
子プロセス側からはmain(ac,av)でav[0]とav[1]で読み出せる。
2012/02/25(土) 13:36:35.19ID:FJpfCqek
char str[3]
でなくて
char *str[3]
が正しい
183174
垢版 |
2012/02/25(土) 14:06:47.63ID:4aVapzR1
>>181,182
解りやすいアドバイスありがとうございます
参考にしてできました!
2012/02/29(水) 18:02:13.67ID:YCT92ZdK
javascriptってみなさん何を使って書かれています?
emacs+js2-mode? それとも何かの開発環境でしょうか?
185login:Penguin
垢版 |
2012/03/01(木) 00:10:16.20ID:p+fzgaQ9
vim
2012/03/01(木) 02:09:39.75ID:zcg896mH
javascript習得する時間より、vim習得する時間の方が長く掛かりそうな件
2012/03/01(木) 08:18:21.75ID:+wd5qPdB
gedit
188184
垢版 |
2012/03/01(木) 15:09:49.99ID:AKrl+MAh
どもです。
vimとgeditですか。
javascriptでemacsはあまり人気ないのかな?
eclipse等も挙がるかなとも思いましたが、
まずはその二つのエディタでのjavascript関連を調べてみることにします。
2012/03/01(木) 18:56:36.08ID:aaOc7Y4R
そもそもプログラミングでemacsというのが・・・ねぇ・・・
2012/03/01(木) 19:24:04.38ID:CWbiDrNB
Geanyという選択肢
2012/03/01(木) 19:25:36.29ID:bqdXtBdB
emacsは環境。 /etc/shell に /usr/bin/emacs が入っているのは当然だ
2012/03/01(木) 21:55:20.56ID:5YvjXZTc
エディタなんてどれでもたいして変わらんて。
目的で選ぶより自分の手に馴染んだものがいいと思うよ。
2012/03/01(木) 23:37:50.99ID:MEHFRDpm
普通は端末で使えるエディタを選ぶだろ。
2012/03/02(金) 00:13:05.82ID:gL7JPOIk
そうするとやっぱり MIFES for Linux 一択なのか。
2012/03/02(金) 18:08:42.96ID:kSorCMmC
>>194
Xが起動していないフレームバッファで動けば、MIFES foe Linuxを
購入するんだけどね。
196login:Penguin
垢版 |
2012/03/02(金) 19:05:04.89ID:kSorCMmC
http://www.cnn.co.jp/tech/30005772.html
http://downloads.element14.com/raspberryPi1.html
http://www.raspberrypi.org/

Linuxはこれで確定。
197login:Penguin
垢版 |
2012/03/02(金) 19:50:43.86ID:jO+ccMa6
英国向けじゃないのか?
国内メーカーは何をしている?
2012/03/02(金) 19:52:36.31ID:Wcs5HBU/
日本企業だと、R4000で似たようなモンをつくって、20万ぐらいで売っとったなあ・・・。
2012/03/03(土) 16:10:00.27ID:6F922IxX
>>197
ヒント。日本でそれを売れば+5000円ぐらいの手数料がつく。
2012/03/03(土) 19:12:03.10ID:8YWnKGd6
>>196
楽天で売ってないだろ。
というかそもそも大人用は売ってないだろ。
201おちんちんびろーん
垢版 |
2012/03/06(火) 14:31:19.56ID:xpdMuQir
ある期間の経過時間を測定する方法を教えてください。

dateコマンドなどで測定中にシステム時計を変更されても
そこそこの精度(約10ミリ秒)を保てる方法を探してます。
2012/03/06(火) 14:34:55.04ID:M2y8/38Z
>>201
/proc/uptimeの1つめの値(単位 [秒])とか。
2012/03/06(火) 15:08:44.67ID:xpdMuQir
>>202
ありがとうございます。
dateコマンドに影響されないことを確認できました。
たいへん助かりました。
2012/03/06(火) 17:33:59.60ID:CxFFdqQe
gettimeofday()が標準のような希ガス
2012/03/06(火) 19:20:15.48ID:xpdMuQir
>>204
それはもうオブラート?になるそうです
2012/03/06(火) 19:23:16.20ID:XaNSOaIJ
もしかして: ビブラート
2012/03/07(水) 15:38:00.92ID:XQas1MTm
clock_gettime(CLOCK_MONOTONIC) かな
2012/03/07(水) 21:11:19.75ID:pR/lmYTk
>>207
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/clock_gettime.2.html
-------------------------------------------------------
CLOCK_MONOTONIC
  いくつかの開始点が指定されていないため、
  クロックがモノトニックタイムを設定したり表現したりできない。
-------------------------------------------------------

ここの日本語が意味不明でいつも考え込んでしまいます
MONOTONICの解説が来るべき所なのに何書いてんだろねこの人
2012/03/07(水) 22:40:04.70ID:Fe0ncWO1
glibcのfprintfってfopenしたディスクリプタに対して
スレッドセーフですか?
2012/03/08(木) 16:45:51.38ID:GdEmGCEZ
>>209
そのスレッドでしか触らないならセーフです
2012/03/08(木) 17:25:11.24ID:SfBxsAk4
>>209
とりあえず手元のlibc.aを見てみたらvfprintf.oの中にlock unlockが入っているからセーフなんじゃなかろうか?
2012/03/08(木) 18:31:49.74ID:hYRB6Qzq
>>209
すげーいいかげんな基準だけど、POSIX.1-2001のgetc_unlocked()が
存在する環境においては、基本的にstdioはスレッドセーフティの確保のために
ロックを行っていると判断していいんじゃないかな
(WindowsのMSVCにも名前が違う似たような関数がある)

getc()のような関数で一文字単位でいちいちロックしてると
流石にパフォーマンスへの影響が馬鹿にならないので、そういう環境では代用に
↑のようなものが用意されてる(ことが多い)
2012/03/09(金) 14:33:34.73ID:4dFasVlh
>>209,>>212
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/pthreads.7.html
ここを参照すると良いと思います。
214login:Penguin
垢版 |
2012/03/10(土) 20:25:55.87ID:AgXqPE2S
Cのソースをgrepするときにどこの関数の中でヒットしたかも
表示させたいんだけど、どうしたらよいでしょうか
2012/03/10(土) 22:16:12.20ID:DQHe+Cez
>>214
grepではそんなことはできない。
2012/03/10(土) 22:31:06.75ID:qRYZkVQs
>>215
では、そんなことが出来るプログラムはもうありますか?
無ければ作るが
2012/03/10(土) 23:18:47.29ID:VdIAOAXn
>>216
簡単なものでよければ
awk '/^[_a-zA-Z]/{fn=$0}/foo/{print fn;print}' bar.c
2012/03/11(日) 01:07:39.90ID:8VY07izi
>>216
無い
2012/03/11(日) 09:11:12.56ID:x4UqQ7FF
>>216
トークンが関数を表すかどうかを判断するのって、意外とプログラムとしてかなり高度で、やりがいのある難易度高い題材。
おそらく本当に「grepした単語が含まれる、元の関数」を検索しるコードを書こうとしたら、
C言語の構文解析器を作る規模のことになるので、意外と結構かなり高度。
もし本当にそのレベルでやるのだとしたら、bisonを使うのがおすすめ。
bisonを使えば、直接手動でCコード全て書かなくても、構文解析器のコードを吐き出してくれるので非常に便利。
2012/03/11(日) 14:15:24.74ID:qPRFCpDR
>>219
そこまで高度なことする気は無いよ
tagsと適当に合成して済ますつもり
221login:Penguin
垢版 |
2012/03/25(日) 15:03:17.64ID:782gvZxG
コマンドラインで動作するプログラムを作成しているのですが、
こういったプログラムのテストはどのように行うのが一般的なのでしょうか?

はじめの頃は手作業で全て入力して動作確認を行っていたのですが、
オプションが10個程度になると、手作業でのテストは大変な作業になってきました。
こういったテストに一般的な方法や、よく使われる方法があれば教えていただきたいです。
言語はPythonで書いております。

よろしくお願いします。
2012/03/25(日) 15:31:14.05ID:xDoRNBMy
プログラマなら皆んな光速で手を動かしてテストしてるよ
手が遅いのは甘え
2012/03/25(日) 15:42:00.80ID:Zsjru2Rm
>>222
光速で動かしても意味無いだろ
入力受け付けてすらもらえない

炎のコマで「1/60秒以上の速度で入力」とかあったけど
どう考えても応答速度を超えた入力は受け付けられない
2012/03/25(日) 15:53:22.73ID:2yDiF48J
>>221
Pythonなら標準でunittestってモジュールが入ってるよ
225login:Penguin
垢版 |
2012/03/25(日) 17:00:05.08ID:5e5gIt/0
単体テスト用のフレームワークはよくあるけど、結合テストや総合テストは
見かけないね。
>>221は総合テストの合理的な手法を探しているんだろうね。
2012/03/25(日) 18:50:09.22ID:1lCFbfwu
ないないない
2012/03/25(日) 23:28:00.32ID:LpnH5yFt
>>223
敵はフレームルールだな
2012/03/26(月) 11:33:17.27ID:S27bj0Nf
コマンドラインで動くものならシェルスクリプトが鉄板
自分で書け
2012/04/10(火) 06:42:51.28ID:Ei+Puq0J
最近、さみしので age
230login:Penguin
垢版 |
2012/04/13(金) 15:50:15.45ID:/+V4vBkE
incronかわいいよ、incronって感じなんだけど、使いまくってる人いる?
信頼性がどれぐらいあるのか知りたい。
2012/04/13(金) 17:34:18.76ID:4fm5Exqh
先にテストコードを書き、そのテストをパスすることを目指して開発する方法もある
2012/04/13(金) 18:04:54.14ID:2jh150VN
ハードドライビインだな
2012/05/03(木) 09:45:04.53ID:FGUK0p2B
ワラスww
2012/07/14(土) 17:21:42.21ID:qSi6hxG7
パイプを通じて親子プロセスで対話させたいのですが,
closeを行わずにパイプの終端を示すことはできませんか?
※イメージ
@2つのパイプ生成(入力用/出力用)
Afork(),子プロセスpipeをSTDIN,STDOUTにdup2して例えば/bin/tr "[:lower:]" "[:upper:]"化
B親プロセスはユーザから入力を受け取り,パイプ(親書子読)から子プロセスにデータを送信してパイプ(子書親読)を監視
C子プロセス(例tr)はSTDINのdupを通じてパイプ(親書子読)に来た文字列を処理し結果をパイプ(子書親読)に返し,readでパイプ(親書子読)を監視
D親プロセスはパイプ(子書親読)から受け取った結果を表示しBに戻る
※終了
普通に書けば問題なく動作することを確認してます.が,ここでやりたいのは
Bの時点で,”次の送信のためにパイプ(親書子読)を閉じない”という方法です.
ただcloseを書かないとCで子プロセスがパイプの終端を検知できず応答しなくなります.
closeしたパイプの復元か,closeを行わずにreadで待機している子プロセスに終端を転送できればいいと思うのですが,
バイト制限,ヌル文字などの方法では実現が不可能でした.(kernel3.4.2,gcc4.6)
235234
垢版 |
2012/07/14(土) 17:25:49.89ID:qSi6hxG7
すみません言語はCで書く前提です
2012/07/14(土) 17:59:50.08ID:Esm6Bb1/
ム板で聞いた方がいいんじゃね。
2012/07/14(土) 19:00:21.39ID:nzkno56P
signalつかえ
238234
垢版 |
2012/07/14(土) 19:40:03.67ID:qSi6hxG7
>>237
シグナルだと,子プロセスが不特定の場合対応できないと思っていますが,
この認識は間違っていますか?
例えばgnuplotにコマンドを発行しつつ,fitコマンド等の発行結果を取得したい場合などです
2012/07/14(土) 19:45:40.84ID:nzkno56P
外部プロセスを使いたいのなら2重にforkして1重目でSIGUSR1なんかを受け取るっててもあるんじゃないかな?
240login:Penguin
垢版 |
2012/07/26(木) 16:17:51.49ID:wtJtbUft
特定のスレッドにシグナルって送れたっけ?
2012/07/26(木) 16:31:19.82ID:5Zr51dMp
pid=fork();
if(pid==0)execv("bin/func",NULL);
kill(pid,SIGUSR1);
って感じでおくれるよ
2012/07/27(金) 00:59:15.16ID:dIOt46Zf
それはスレッドじゃない
2012/07/27(金) 14:28:50.74ID:rzDDYPdz
>>242
じゃあ何になるの?
2012/07/28(土) 12:34:07.08ID:7BQvbjZw
プロセス。
2012/07/28(土) 13:46:17.99ID:83+8MRAU
でもプロセスじゃないよね
2012/07/29(日) 09:17:38.80ID:DRRnTV50
いや、プロセスでしょ。
2012/07/29(日) 12:56:08.66ID:1OypjNDe
プロセスの定義による
2012/07/30(月) 00:38:15.33ID:BlRw7uXN
Linuxプログラミングには謎が多い
どれもがプロセスとなり どれもがスレッドとなる
2012/08/05(日) 18:03:21.01ID:NQOrt6N5
プロセスを無理やりスレッド化したから、謎的な実装になっただけ。

Linuxの実装ではスレッドは同一メモリ空間を共有する複数のプロセス
であってプロセスでも特殊なことをすればこれと同等になる。
2012/08/06(月) 03:01:56.55ID:OHfFtlDR
一体『NTPL』とは何か
2012/08/06(月) 20:05:56.78ID:lrYgi91M
"The Deamon Load of the Process Table"
2012/08/11(土) 15:24:10.39ID:6m1hNuKe
Linuxのメジャーなライラリーの分類や違い主な特徴を説明している
サイトて知りませんか?
2012/08/12(日) 10:19:41.61ID:4e32eoIJ
何をするライラリーが欲しいのかくらい書いたら。
2012/08/13(月) 04:02:49.59ID:ZbOvHG5e
何をするライブラリーでメジャーなら分類の必要すらないな
2012/08/16(木) 21:29:01.02ID:bXihQ5do
各ライブラリーの特徴とかもしらないだけで、知っていたらそんな発言は
しないよな。
2012/08/16(木) 23:42:49.21ID:uOzFckex
質問なんですがシャットダウン時にシェル実行するにはどうしたらいいですか?
CentOSです。
2012/08/17(金) 01:10:23.89ID:dywpVQuB
シャットダウン時にシェル実行しても速攻でkillされるんじゃね?
そもそもシャットダウン時にインタラクティブにコマンド実行する必要があるの?
258256
垢版 |
2012/08/17(金) 06:44:15.87ID:sat4lCsi
そうですか…
シャットダウンをクリックしたらその日の合計使用時間をzenityで表示してからシャットダウン
っていうのをやりたかったんですが
2012/08/17(金) 07:08:25.67ID:LamlyLNr
使ってるウィンドウマネージャや統合環境にもよるだろう
GNOMEだと仮定するとこんなのが出てきた
http://library.gnome.org/admin/gdm/stable/configuration.html
2012/08/17(金) 09:56:30.58ID:Oc6GpWFD
>>258
ならシャトダウン時っつーかログアウト時じゃね?
2012/08/29(水) 22:37:57.82ID:uRemXgn9
http://www.rupan.net/uploader/download/1346247253.sh
画像ファイル名の一括リネームのスクリプトをベタ打ちで組んでみました
ここをこうしたほうがいい、などの意見を聞きたいので評価お願いします
2012/08/29(水) 23:01:25.69ID:cVM9gspC
> Error
> ERROR: ダウンロードパスワードが間違っています.
  _, ._
(;゚ Д゚)
2012/08/29(水) 23:06:19.00ID:uRemXgn9
ああ、パスはlinuxです
264login:Penguin
垢版 |
2012/09/06(木) 14:14:09.86ID:BuxQouph
bwbasicですごいプログラムを書いてる人はいますか?いたらソースリストください。
私はデモプログラムに飢えている男です。
265login:Penguin
垢版 |
2012/09/07(金) 18:31:09.95ID:DYolflb1
合計使用時間書き出してからシャットダウンコマンド呼び出すプログラム用意すれば
2012/09/08(土) 14:10:25.84ID:aeoFZ+br
bwBasicって面白そうだな
これってゼビウスくらいなら簡単に作れるのかな
2012/09/08(土) 21:30:29.86ID:TfjdmfwD
お前らはQtライブラリ使ってアプリ作ってる?
2012/09/09(日) 08:31:12.14ID:oy+xzYO8
MS=Basicを意識して作られたANSI準拠のBasicてだけじゃん。1993〜の開発
ってだけで、歴史だけが自慢で、グラフィックに特化した関数があるわけでもなし
Basicの中でshellコマンドが使えるって以外、別に面白みない。
2012/09/09(日) 22:51:44.69ID:LSon9lvj
円は描けないのか?
2012/09/12(水) 17:18:09.13ID:p6v22MlY
BASICはコンパイラではない現状で主流のBasicはBASICではなくコンパイラである。
これらは行番号を必須としないのでBASICの最も重要な会話型言語の特徴を継承していない。
文法を互換しただけならテキスト変換してライブラリーを用意するだけの力技
それは形式だけの上っ面を互換させただけでBASICの本意である全てが大文字の
BASICとはどの行番号からでも再開でき、美しくないキテレツな言語である。
一時的に止めてパラメータを捏造し再開できるのも特徴である。
行を挿入して途中から走らせることができるのも会話型言語の特徴である。
プログラムを作るのではなくプログラムを体験する為の言語といってもいいだろう。
271login:Penguin
垢版 |
2012/09/13(木) 12:31:26.27ID:RznLhSNU
んなこたぁ誰だって分かってるよバカァ
少年時代にマイコソベーシックマガジン見ながら打ち込んだ日々を懐かしんでるだけだアフォ
2012/09/13(木) 12:45:08.59ID:J1X6KM7h
Listlogを打ち込んだ記憶が懐かしい。まみりんとか。
2012/09/13(木) 17:27:30.69ID:TmN9IBv0
> 一時的に止めてパラメータを捏造し再開できるのも特徴である。
> 行を挿入して途中から走らせることができるのも会話型言語の特徴である。

VS使えばC++でも出来るよね。
2012/09/13(木) 19:56:24.83ID:4QIuDma3
>>273
ソースが無いときっつい
レスを投稿する


ニューススポーツなんでも実況