1 名前:970 [2006/05/18(木) 18:56:16 ] UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 前スレ Part7 pc8.2ch.net/test/read.cgi/tech/1127373405/ Part6 pc8.2ch.net/test/read.cgi/tech/1116908090/ Part5 pc8.2ch.net/test/read.cgi/tech/1105723117/ Part4 pc5.2ch.net/test/read.cgi/tech/1095843584/ Part3 pc5.2ch.net/test/read.cgi/tech/1085930894/ Part2 pc5.2ch.net/test/read.cgi/tech/1055110889/ Part1 pc2.2ch.net/tech/kako/992/992057422.html Part3のミラー makimo.to/2ch/pc5_tech/1085/1085930894.html Part2のミラー makimo.to/2ch/pc5_tech/1055/1055110889.html
321 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 07:58:39 ] # cat seq #! /bin/sh if [ $# -lt 1 ]; then echo missing operand 1>&2 exit 1 elif [ $# -gt 3 ]; then echo extra operand 1>&2 exit 1 elif [ $# -eq 1 ]; then FIRST=1 INC=1 LAST=$1 elif [ $# -eq 2 ]; then FIRST=$1 INC=1 LAST=$2 elif [ $# -eq 3 ]; then FIRST=$1 INC=$2 LAST=$3 fi n=$FIRST while [ "$n" -le "$LAST" ]; do echo "$n" n=`expr "$n" + "$INC"` done
322 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 21:07:18 ] 皆さん考えてくださってありがとうございます。 考えてくださっているのですが、 IFやFOR等は使っちゃだめみたいなんです。 記述は、 #!/bin/bash while [ ] do done のような記述のみでつくれっていわれてるんです。 whileは自動的に表示結果に改行が入ってしまいますよね? その改行をなくすにはどうしたらいいんでしょうか?
323 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 21:38:47 ] 宿題ですか。
324 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 22:00:28 ] $ n=1;while test $n -le 9; do m=1;while test $m -le 9; do echo -n `expr $n '*' $m` ""; m=`expr $m + 1`; done; echo; n=`expr $n + 1`; done echo -nを使う
325 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 22:07:03 ] 正直、宿題です orz
326 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 22:33:04 ] echo -nを使っている状態で、改行させるにはどうしたらいいですか?
327 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 23:03:53 ] echo -n "hoge" " " "hage"
328 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 10:16:53 ] >>326 -nを付けない。
329 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 10:50:33 ] \n
330 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 13:16:41 ] ありがとうございました。 無事、宿題を終えました。 色々と教えてくださった方々感謝します。
331 名前:デフォルトの名無しさん [2006/10/02(月) 23:08:27 ] だれか教えて。 Makefileで環境変数(PATH)を変更したいのです。 現在設定されているPATHの先頭に/aaaを追加するには どう記述すればよいですか
332 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 23:52:36 ] >>331 PATH=$(PATH):/aaa
333 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 23:55:44 ] PATH=/aaa:$PATH
334 名前:331 [2006/10/03(火) 00:18:02 ] ありがとう^^ 試してみます。
335 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 09:41:22 ] >>333 括弧つけろよ。
336 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 01:51:39 ] >>321 って何?
337 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 01:59:02 ] >>336 動かしてないけど、連続した数の列を吐くスクリプトだな。 その上にある質問(>>317 )への回答(>>318 )に出てきたGNUのseq(やBSDの jotだっけ?)は移植性がないので、スクリプトとして作ったわけ。 スクリプトのはじめの長いif文は引数の数によって、開始値・終了値・刻みを セットしている。(case $# in...のほうが見やすいかも)
338 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 16:02:10 ] esac だけはいまだに慣れない
339 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 16:12:40 ] caseだとこうか。 case $# in 1) FIRST=1; INC=1; LAST=$1;; 2) FIRST=$1; INC=1; LAST=$2;; 3) FIRST=$1; INC=$2; LAST=$3;; *) [ $# -lt 1 ] && echo missing operand 1>&2 [ $# -gt 3 ] && echo missing operand 1>&2 exit 1;; esac
340 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 10:21:44 ] マイナスになることはないので、0)と*)でいいのではないか?
341 名前:デフォルトの名無しさん [2006/10/08(日) 01:31:24 ] すみません、突然なんですけど 昨日プログラミングの講義で課題を出されて eのx乗を求めるプログラムを作れと言われて 困ってます。昨日からずっと考えてるんですが 全くわかりません。 どなたか教えてもらえませんか?
342 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 01:48:32 ] pow関数使ってもいいのか?
343 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 01:49:04 ] 昨日からずっと考えてるって… 何を、どんな知識をベースに考えてたんだ? 単純に、こういうことなんじゃないのか? www.google.co.jp/search?hl=ja&q=%22math.h%22+log&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
344 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:08:30 ] >>341 UNIX関係あるのか? math.h使わないとして普通に考えても 0乗なら 1 1条なら e x乗なら e^x をしたらいいだけじゃないのか?
345 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:16:04 ] xが整数とは限らないとちょっと面倒かも つか宿題スレ池
346 名前:デフォルトの名無しさん [2006/10/08(日) 02:22:40 ] >>344 LINUXでやってます。 プログラミングの知識が乏しくて プログラミングをかけないんです。 #include <math.h> double log(double x); って感じで書くんですけど・・・ その後がいまいちわからなくて・・・
347 名前:344 mailto:sage [2006/10/08(日) 02:27:22 ] >>346 入門書読め 乗算以前にC言語の構文が理解できてない
348 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:41:50 ] eが自然対数の底ならlog(x)じゃなくexp(x)でそのものずばりだろ。
349 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 03:13:13 ] exp(x)関数使わせるだけの演習なの?
350 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 03:16:42 ] 構文が理解できてないようだから、構文の勉強中じゃないの?
351 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 05:41:59 ] 金払ってまで勉強する領域で講義もろくに聞いてないとは。
352 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 06:06:21 ] 俺も思う。 金払って勉強してるのに、なぜ答えてくれるかどうかもわからない2chなんかで聞くのか。 金払ってるんだから講師にでも聞けよ
353 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 10:22:06 ] 勉強でも遊びでも、学生時代の経験ってのは大切だ。 市民権のある立場を買ってると考えればよい。
354 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 13:26:51 ] 留学生には市民権はないぞ。 市民権というのは、citizenshipの訳語で、 政治参加の権利を持っている人のことだぞ。 ギリシャのポリス市民から来ている。
355 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:01:33 ] >>354 どうでもいいよ。定義なんて。
356 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:07:05 ] >>355 どうでもいいよ。お前の意見なんて
357 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:11:18 ] >>356 じゃあわざわざwikipedia書くような労力払わんで下さいよ。
358 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:11:39 ] キミタチキモイヨ
359 名前:デフォルトの名無しさん [2006/10/09(月) 13:21:17 ] GCCとMakeの質問です。 Apacheモジュールからpostgresへつなげる処理を 作っているのですが、 Makeしたときに"closesocket"関数がpostgres.hとport.h内で再定義(redefined)された という警告が出力されます。 こういう場合、何か回避するよい方法がありますでしょうか? 今のところpostgres側のヘッダ(port.h)に #define closesocket pg_closesocket とかすればよいのだろうかと考えていますがどのような影響があるかわからず躊躇しています。 ・Make時のログ In file included from /usr/local/include/postgresql/server/c.h:822, from /usr/local/include/postgresql/server/postgres.h:48, from mod_blog.c:9: /usr/local/include/postgresql/server/port.h:273:1: warning: "closesocket" redefi ned In file included from /usr/local/include/apache/httpd.h:29, from mod_blog.c:2: /usr/local/include/apache/ap_config.h:1084:1: warning: this is the location of t he previous definition ・ソースファイル(ヘッダ部) #include <string.h> #include "httpd.h" #include "http_config.h" #include "http_protocol.h" #include "ap_config.h" #include "http_log.h" #include "libapreq/apache_request.h" #include <postgres.h> #include <libpq-fe.h> <略>
360 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:22:35 ] 警告出したくないだけなら/dev/nullにパイプしろ
361 名前:359 [2006/10/09(月) 13:29:00 ] 訂正です。 X Makeしたときに"closesocket"関数がpostgres.hとport.h内で再定義(redefined)された ○ Makeしたときに"closesocket"関数がap_config.hとport.h内で再定義(redefined)された >>360 いやそれだと意味が...;
362 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:40:11 ] >>359 自作モジュールでclosesocketを使わなければうまく行く。 (と言うか問題があればリンク時にこけるので取りあえず無視して良い)
363 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:40:14 ] >>361 どう回避したいのかいってないから、警告を表示したくないと思われても仕方ない罠
364 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:41:04 ] >>363 知らんのなら出てくんなや。と言う正論。
365 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:51:04 ] 知った上で書き込めるのはエスパーだけ!
366 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:53:03 ] >>365 そこそこ回答が上がってるわけですがw
367 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:56:45 ] じゃぁ、それで満足しておけよw
368 名前:359 [2006/10/09(月) 13:57:12 ] >>362 >>と言うか問題があればリンク時にこけるので取りあえず無視して良い) なるほどー 今のところ、モジュール自体は動いているし Makeがエラーを吐いてとまることもないので 実用上問題はないかも・・・と とりあえず postgresの関数の内部(PQfinishとか接続を切る系?) などの中で該当関数が使われてないかをみて影響範囲を絞り込んでみます。 ありがとうございます。 >>363 そうですねー 重複しているclosesocket関数が、内部的に衝突・上書きされずに共存する回避の仕方 がないかということです。
369 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 14:17:22 ] #ifndef __WIN32__ #define closesocket close #endif みたいな感じだと思うけどねー。
370 名前:デフォルトの名無しさん [2006/10/10(火) 14:59:06 ] 任意の長さの文字列データをファイルから読み込み、辞書順に並び替えて最終結果のみを表示するプログラミングを作成せよ。ただし、データは改行で区切られており、文字列の最大長を64、データの最大個数を1000とする。 っていう問題が学校で出たんですけど、誰か教えてくれませんか。
371 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 15:00:13 ] >>370 先生に聞け
372 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 15:20:36 ] 辞書順の定義が謎だね。出題者(センセ)は分かってるんだろうか。 アルファベットだけでも aAbBなのかAaBbなのかabABなのか ABabなのかはロカールによって違う。 ロカール指定で済むなら、strcmpの代わりにstrcollを使えば LC_COLLATEを見てくれるので話ははやいが。
373 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 16:01:45 ] UNIX関係ない質問に答えている人って馬鹿なんでしょうか?
374 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 16:04:31 ] 関係ない上に重箱の隅w
375 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 22:22:53 ] 釣りだろ。373に答える奴は馬鹿かとも言ってるわけだから。
376 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 02:34:40 ] >>370 system("sort");
377 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 04:56:51 ] >>376 おそれいった。
378 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 23:15:38 ] >>文字列の最大長を64 ぬるい。 どうせなら文字列は可変長、リストに格納しつつソートとか のほうが実践的
379 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 23:51:43 ] >>378 実戦で底までせなあかん局面がない。
380 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 01:00:06 ] メモリ資源の乏しい計算機でも実行できるというメリットがある
381 名前:デフォルトの名無しさん [2006/10/19(木) 11:41:06 ] コマンド実行で誤って*******(アスタリスク7文字)を入力したら subjectの入力となりました。 mailコマンドを実行したわけでもなく原因がわかりません。 ご教授よろしくお願いします。
382 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:46:27 ] echo ******* とかやってみ。たぶん先頭にMailがいるんじゃないか?
383 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:53:58 ] >>381 鼬害。シェルにおける'*'の意味を考えれば、何が起きたか判るはず。
384 名前:デフォルトの名無しさん [2006/10/19(木) 22:05:28 ] >>383 それを説明しろ できねんだろ?
385 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:17:47 ] ありゃりゃ?そこにからむのか?w
386 名前:デフォルトの名無しさん [2006/10/21(土) 22:48:10 ] すみません。どなたか教えてください。 cout << "こんにちは" << endl; を含むコードをコンパイルし、実行したところ、"こんにちは"の部分が文字化けして、読めません。 OSはCent OS4.3です。
387 名前:386 [2006/10/21(土) 22:49:39 ] どうしたら、日本語の出力ができるようになるんでしょうか?
388 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 23:03:29 ] >387 ロケールを設定。 ttp://www.google.co.jp/search?q=C%2B%2B+locale
389 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 11:34:31 ] 常にウインドウを最前面に配置したいのですが、 それはどのようにして実現できるのでしょうか?
390 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 12:06:50 ] >>389 ウィンドウ環境によって異なります。
391 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 12:42:58 ] >>390 汎用的な方法は無いのでしょうか?
392 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:00:05 ] >>391 window managerにそう指定する。
393 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:19:10 ] >>392 どこが汎用的なんだ? >>391 やったことないけど、Windowが隠されたら最前面にマップするようにしたら?
394 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:54:08 ] > Windowが隠されたら最前面にマップ 2つのアプリがそれやり出したらとっても楽しいことになりそうだな
395 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:54:25 ] そもそもXWindowかどうかさえ判らないのに汎用的な方法なぞあるわけがない。
396 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:57:40 ] >>394 重なったWindowのプロパティ見れば?
397 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:01:27 ] >>396 素朴な疑問だが、どんなウインドウシステムを仮定している?
398 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:10:56 ] >>397 汎用的な方法なんだから何も仮定してるわけないだろ。 それでプロパティってのが何のことなのかはさっぱりわからんが
399 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:16:43 ] XならWMに対してポリシーのヒントみたいのん設定するんじゃないっけ あとはWM次第みたいな
400 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:22:38 ] >>399 それ>>392 じゃないの? 違いは「Xなら」と「あとはWM次第」って予防線?
401 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:26:03 ] ああ、そうなんだけど、なんか妙な方向に流れてるから多少具体的に言ってみました
402 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 17:50:02 ] 環境がわからないのに汎用的な方法もクソも無いだろうに…
403 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 20:27:21 ] >>402 環境を選んでる時点で汎用ではないだろ
404 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 23:08:26 ] ウィンドウのない環境まで想定したら汎用的な方法などありえない、で終わってしまうな
405 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 05:06:24 ] cursesならキャラクタ端末でもウィンドウが
406 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 07:44:01 ] 質問した奴はげんなりしてるだろうなw
407 名前:デフォルトの名無しさん [2006/10/26(木) 15:31:08 ] Xのプログラムで質問です。 外部からの指示により、スクリーンサイズと同じサイズの背景透 過なウィンドウを作成したいのですが良い方法はありませんか? やりたいことは、画面上は他のウィンドウが表示されているけど 画面をクリックしたらそのイベントを他のウィンドウに渡さず透 過なウィンドウで受けとって座標位置にあった処理をしたいので す。 デプス1のピクスマップをつくってXShapeCombineMask()を使 用したら透明なウィンドウはできたのですが、画面クリックする と透過された他のウィンドウがイベント拾っちゃいました(TT
408 名前:386 mailto:sage [2006/10/29(日) 15:15:49 ] >>388 レスが遅くなりましたが、ありがとうございます。 なお、ロケール設定後も文字化けして表示してしまって いました。その後、SSHクライアントが日本語に対応して いなかったためだと分かり、やっと解決しました。
409 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 18:07:23 ] >>407 xwininfoのソース嫁
410 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 16:26:12 ] >>409 それは XGrabPointer使えってことだよね。>>407 が考えていることとは微妙に違う気がする。
411 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 19:49:03 ] >>407 XShapeで作成したウィンドウは、下のレイヤのウィンドウを透過しているのではなくて、ビットマスクによって自身の ウィンドウの形状を変更(クリッピング)している。ウィンドウが無いとみなされているので、下のレイヤのウィンドウに イベントが通知される。 参考になりそうなのはkinput2等、IMのソース。 ・class=InputOnly, override_redirect=True なウィンドウを作成すると、非表示のウィンドウでマウス入力が取れる。 ・非表示のウィンドウはフォーカスを持たないため、キー入力を取るためには別途 XGrabKeyboard すれば桶。
412 名前:デフォルトの名無しさん [2006/11/02(木) 22:15:24 ] TCP サーバーソケットで、受信メッセージからDestination IP addressの取得するのは、どうすればよいでしょうか? 一応今までは、UDPだったので、RAWソケットを使ってIPパケットを見ていたのですが、 今度、TCPでもやることになってしまいました。 RAWソケットを使わず、取得する方法は無いでしょうか?
413 名前:デフォルトの名無しさん [2006/11/02(木) 22:26:55 ] >>412 Packet Socket
414 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 22:30:26 ] acceptのときに得られるんでない?
415 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 22:41:49 ] >>412 ×受信メッセージから ○受信ソケットから getpeeraddr(2)
416 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 23:35:44 ] getsockname
417 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 10:27:33 ] >>412 質問を明確にしたほうがいいんじゃない? 受信パケットのDestinationってことは、自ノードのアドレスってことだよね 複数アドレスがある場合に特定する方法があれば俺も知りたい(以前調べてわからんかった)
418 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 11:08:42 ] >>417 ギャグですか?
419 名前:412です [2006/11/04(土) 14:18:42 ] すみません。レス遅れました。 getsocknameで、自分の情報(受信ソケットの場合Destination IPを取得)ということですね。 どうもありがとうございます。 >>417 そうです。受信パケットのDestinationってことです。もう少しこの部分を強調すれば 良かったですね。 >>413 パケットソケットだと、RAW ソケットになるとおもいますが、私の勘違い?
420 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 12:20:08 ] ファイルやディレクトリが存在するかどうかを調べるにはどうしたらよいでしょうか?
421 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 12:40:52 ] stat