>> 4935 >> 4936 返事が遅くなってすみません。 分かり易く説明ありがとうございます。 勉強になります。 |
Cシェルでのリダイレクションについてなのですが コマンドの実行結果で、標準エラー出力を捨てて、標準出力 だけを見たいのですがどうすればよいのですか。 cat file.txt >& /dev/null では、標準出力、標準エラー共に捨てられますが、 標準エラーを捨てて、標準出力を表示したい。 cat file.txt 2 >& /dev/null cat file.txt >2& /dev/null cat file.txt >& 2 /dev/null cat file.txt > /dev/tty >2 /dev/null cat file.txt > /dev/tty >& /dev/null とやってみたのですが、どれも上手くいきません。 どうすればよいのでしょうか。 環境は、 Solaris8 Cシェル です。 |
>>4942 べた tty 宛でよいなら、サブシェルを使って ( cat file.txt > /dev/tty ) >& /dev/null です。 |
>> 4944 ありがとうございます。 > tty 宛でよいなら、サブシェルを使って > ( cat file.txt > /dev/tty ) >& /dev/null > です。 出来ました。 tty 宛でよいなら、サブシェルを使って tty を使わない方法もあるのですか。あるのでした教えてください。 サブシェルとは。 「( command )」とはどのよな使い方でしょうか。 良い案が思い浮かばなかったので、「cat file.txt > /dev/tty」で 表示ができたので、 /dev/tty を使えば上手くできるのではないかと。 |
>>4944 べた tty を使わないなら、 ( cat file.txt > out.txt ) >& /dev/null などとファイルに保存する。 あるいは mknod や mkfifo で名前付きパイプを作ってそこに 流すなど (さすがに標準エラー出力を捨てるためにここまで やるのはバカバカしいですが)。 mkfifo out cat out & ( cat file.txt > out ) >& /dev/null あるいは sh -c "ls cat file.txt 2>/dev/null" などと sh で逃げる手もあります。 csh でやるなら、これ以外の方法はおそらくないです。 > サブシェルとは。 > 「( command )」とはどのよな使い方でしょうか。 こちらをどうぞ。 http://x68000.q-e-d.net/~68user/unix/pickup?%A5%B5%A5%D6%A5%B7%A5%A7%A5%EB |
>> 4945 ご説明ありがとうございます。 Windows XPの別端末で書き込みをしたら 「エラー : 内部エラーが起こりました。」 の画面が表示されました。 何かあるのでしょうか。 |
こんにちは.linuxを使い始めたものです. パイプに関する質問です.環境はVine Linux のbashです. あるファイル名(ここではtestfile)のものを検索して, さらにその中身に"test"という文字列を含むかどうかを 知りたいと思っています. 対象のファイルがひとつとは限りません.例えば, ........... ../Data1/testfile ⇒(中身)This is test file. ........... ../Data2/testfile ⇒ (中身) This is hoge hoge. といった感じで同じ名前のファイルが別のディレクトリにあります. cat,find, grepを組み合わせれば出来そうな気はしているのですが, findしてリスト表示されたファイル名を引数としてcatコマンドに 渡すことができません. 自分なりにいろいろ検索しましたが,よくわかりませんでした.. よろしくご教授ください. |
>>4947 素人 親ディレクトリ以下の testfile というファイル名のファイル中に test という文字列があるものをリストアップ、であれば % find ../ -name testfile | xargs grep -l test でしょうか。それを cat するなら % find ../ -name testfile | xargs grep -l test | xargs cat ですかね。 |
>>4948 68user できました!答えはxargsでしたか. 勉強不足で恐縮です.ありがとうございました. |
RSA1のプログラムを実行するにあったってエラーが多くでます。これのヘッダファイルはどこにあるのでしょうか。 |
>>4950 佐藤丈師 OpenSSL に同梱されていますので、OpenSSL をインストール済みであれば /usr/include/openssl や /usr/local/openssl/include などにあるはずです。 コンパイル時に -I /usr/include/openssl などのオプションを付加してください。 |
初めて投稿します。 全くの初心者ですが、次のことをお尋ねします。 Debian4.0ですが、デスクトップにアイコンを作成し、クリックすると プログラムを起動するようにしたいのですがどのようにすればいいの でしょうか。 #su - abc ’abcでログインし、「sh /usr/lib/scripts/claim/ORC_CLAIM_SERVER.sh 5001 /var/tmp」 ktermに記述などお尋ねします。 |
>>4952 kawasaki やり方はインストールしたデスクトップ環境 (GNOME とか KDE とか) によると思います。 が、お使いのデスクトップ環境をお教えいただいたとしても、ここ数年は UNIX 系 デスクトップ環境をいじっていないので、わたしはさっぱりわかりません。 |
初めまして。 ちょっと気になったので言わせて下さい。 UNIXの部屋 コマンド検索: Machでの説明で、 発音は、普通なら [まっは] が正しいと思うが、アメリカ人は "ch" の発音ができないらしくて [まーく] [まっく] といっている (発音できないような名前を付けるなと言いたい)。 とありますが、発音できないんじゃなくて、そういうスペルだと、 英語的には、マークって呼ぶだけです。hの2つ前は、aつまりエイって発音し、 cは、基本的には、ックって発音になり、 何も考えずにつなげて読むと、マークって読みます。 で、でもなんで、マッハが正しいかと言うと、 これは、ヨーロッパ系の言語の多くが、 machって書いてまっはって読むからです。 発音できないわけじゃないですよ^^; |
>>4954 uccこーひー ご指摘ありがとうございます。が、正直なところを申しますと、学がないので 真偽のほどが判断できません。よって、該当コンテンツより、 >>4954 uccこーひー の発言にリンクを張らせていただきますので、あとはお読みいただいた方に ご判断いただくことでご了承ください。 |
いつも便利に参照しています。 lsコマンドの紹介ページ(http://x68000.q-e-d.net/~68user/unix/pickup?ls)で 「man Solaris10 ls(1)」のリンク先が間違えているのに気がついたのでご連絡です。 正しくは、 「http://docs.sun.com/app/docs/doc/819-1210/ls-1?l=ja&a=view&q=ls」かな? |
>>4957 たけ > 「man Solaris10 ls(1)」のリンク先が間違えているのに気がついたのでご連絡です。 ありがとうございます。Sun のページはたまに URL が変わるんですよね…。 最新情報で更新しておきました。 NetBSD の manpage へのリンクも表示されなくなっていますが、そのうち直します。 |
SE募集の件で書き込みさせていただきました。 大変興味がありますので、一度詳細を教えていただけないでしょうか。 ご連絡をお待ちしています。 |
ありがとうございます。メールを送ります。 |
Perlで、前日のAM9時以降に作成されたファイルを 取得したいのですが、どのようにPerlを書けばよい のでしょうか。 Perlのシェルスクリプトを起動する前日のAM9以降 から、実行日までの間に作成されたファイルを取得 したいのです。 実行日の前日の9時というのは以下の方法で取得できる のですが、取得した日付とファイル作成日付を比較し、 対象か否かを判断して、必要なものだけを取得する 方法が分かりません。 どのよに書けばよいのでしょうか。 「実行日の前日の9時」は、 -------------------------------- #!/usr/local/bin/perl $tm = time - (24 * 60 * 60 * 1); ($sec, $min, $hour, $day, $mon, $year) = (localtime($tm))[0..5]; $now = sprintf("%04d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon+1,$day,$hour,$min,$sec); print $now, "\n"; -------------------------------- #!/usr/local/bin/perl use POSIX 'strftime'; $tm = time - (24 * 60 * 60 * 1); my $now = strftime "%Y/%m/%d %H:%M:%S", localtime($tm); print $now, "\n"; |
>> 4974 環境を書き忘れました。 環境は、 Solaris8 Perl v5.8.5 |
>>4974 べた >>4975 べた Solaris なら適当なファイルを作って、touch コマンドでタイムスタンプを 前日 08:59:59 にしておいて、find . -newer foo とするのが一番簡単かと 思います。 FreeBSD なら find -mtime -99h とか、Linux なら find -mmin -9999 とか できますが (99 や 9999 は計算して求める)、結局は -newer の方が簡単な 気がします。 モジュール使うなら File::Find http://perldoc.perl.org/File/Find.html File::Find::Rule http://search.cpan.org/~rclamp/File-Find-Rule-0.28/lib/File/Find/Rule.pm あたりかと思いますが、いずれも前日9時と比較する部分は手で書かないと いけないように見えますので、イマイチですね。 |
>>4976 68user ありがとうございます。 また、返事が遅くなって申し訳ありません。 > find . -newer foo ですか。 シェルで、findの結果を取得することも考えました。 > あたりかと思いますが、いずれも前日9時と比較する部分は手で書かないと > いけないように見えますので、イマイチですね。 Perlを使おうとしていたので、手で書かなくてはいけないと思っていました この部分の良い方法が実現できなくて。 環境上、教えて頂いたモジュールも入れることができません。 |
>>4977 べた find . -newer foo の方法を書いておきます。find を使わないなら、 昨日9時の日時 (20090323090000) を Time::Local で epoch time に 直しておき、stat() が返す最終更新時刻と比較すればよいでしょう。 ------ my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time()-60*60*24); my $timestamp = sprintf("%04d%02d%02d%02d%02d.%02d", $year+1900, $mon+1, $mday, 9, 0, 0); my $yeasterday_9am_file = "foo.txt"; system("touch -t $timestamp $yeasterday_9am_file"); open(IN, "find . -type f -newer $yeasterday_9am_file |"); while (<IN>){ chomp; print "$_\n"; } |
>> 4978 ありがとうございます。 教えていただいた方法ですと、前日9時のタイムスタンプの 取得をPerlでやればあとは、シェルスクリプトでもできます ね。 実のところ、findを使わない、Perlでの記述、遣り方を教えて ほしいのですが。 |
>>4978 68user > find を使わないなら、 > 昨日9時の日時 (20090323090000) を Time::Local で epoch time に > 直しておき、stat() が返す最終更新時刻と比較すればよいでしょう。 Time::Local で epoch time に直しての「epoch time」とは なんでしょうか。 |
linuxのCでグラフィックの勉強がしたくてX-Windowまで辿り着いたのはよかったんですが、 ここ↓のソースを実行させようとしても何故かエラーが出てしまいます。 http://x68000.q-e-d.net/~68user/xprogram/xlib-4.html 一応類似の記事がないかどうか調べて見ましたが、 No.8552が近いと思いましたが全然分かりませんでした。 ちゃんとusr/include/X11ファイルに Xlib.hとXutil.hはありますし、 コンパイルオプションも活用してみました…… Xlib.hとXutil.hの意味も分からなくて困窮中です…… コマンドラインは、gcc -o xlib-4-1 xlib-4-1.c -I /usr/include/X11 -L /usr/include/X11 エラーは以下の文です /tmp/cc2pF4g1.o: In function `main': xlib-4-1.c:(.text+0x9f): undefined reference to `XOpenDisplay' xlib-4-1.c:(.text+0x149): undefined reference to `XCreateSimpleWindow' xlib-4-1.c:(.text+0x198): undefined reference to `XSetStandardProperties' xlib-4-1.c:(.text+0x1c0): undefined reference to `XCreateGC' xlib-4-1.c:(.text+0x1e8): undefined reference to `XSetBackground' xlib-4-1.c:(.text+0x20a): undefined reference to `XSetForeground' xlib-4-1.c:(.text+0x232): undefined reference to `XCreateGC' xlib-4-1.c:(.text+0x25a): undefined reference to `XSetBackground' xlib-4-1.c:(.text+0x27c): undefined reference to `XSetForeground' xlib-4-1.c:(.text+0x294): undefined reference to `XMapRaised' xlib-4-1.c:(.text+0x2ec): undefined reference to `XFillArc' xlib-4-1.c:(.text+0x344): undefined reference to `XFillArc' xlib-4-1.c:(.text+0x352): undefined reference to `XFlush' collect2: ld はステータス 1 で終了しました |
>>4982 ちびヴァル オプション -lX11 が足りていません。まずは http://x68000.q-e-d.net/~68user/xprogram/xlib-1.html からどうぞ。 |
>>4980 べた > 「epoch time」とはなんでしょうか。 http://oku.edu.mie-u.ac.jp/~okumura/php/date.php UNIX で Epoch とは,協定世界時(UTC,いわゆるグリニッジ標準時 GMT) 1970 年元旦 0 時 0 分のことです。 UNIX の内部ではこの瞬間からの秒数で 時刻を表しています。 のことです。 |
>>4983 68user 一通り実行して終了させると次の文章が出るんですが…… XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 16 requests (14 known processed) with 0 events remaining. 自分で調べて、etc/X11/xorg.confというファイルにが重要であると わかったので、xorg.confに Section "ServerFlags" Option "AllowEmptyInput" "off" EndSectionを 追加しようとしていますが、普通のテキストエディタでは 「そのファイルを保存するために必要な権限がありません。入力した場所が正しいか確認して、もう一度実行してみて下さい。」 と出て保存出来ないのですが、どうすればいいでしょうか? また、コマンドプロンプトでも試して見ましたが、 E325: ATTENTION Found a swap file by the name "/etc/X11/.xorg.conf.swp" owned by: root dated: Mon Apr 6 14:37:03 2009 file name: /etc/X11/xorg.conf modified: YES user name: root host name: mikan process ID: 8021 While opening file "/etc/X11/xorg.conf" dated: Thu Mar 5 23:15:04 2009 (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r /etc/X11/xorg.conf" to recover the changes (see ":help recovery"). If you did this already, delete the swap file "/etc/X11/.xorg.conf.swp" to avoid this message. "/etc/X11/xorg.conf" 33 lines, 1037 characters と出てどうすればいいか迷っています |
>>4985 ちびヴァル > Found a swap file by the name "/etc/X11/.xorg.conf.swp" vim が作成したスワップファイルでしょうから、.xorg.conf.swp を 削除して、root 権限で xorg.conf を更新すればよいと思います。 |
>> 4978 > find . -newer foo の方法を書いておきます。find を使わないなら、 > 昨日9時の日時 (20090323090000) を Time::Local で epoch time に > 直しておき、stat() が返す最終更新時刻と比較すればよいでしょう の方法を教えて欲しいのですが。 |
Bシェルで、sedを使って、フルパスからディレクトリとファイル名を 分割したいのですが良い方法を教えてください。 ファイル名を取り出すことは出来たのですが、パス名を取り出すこと ができません。 また、ルート直下「/txt.csv」のような場合だと、ファイル名が取り出せ ません。結果が、「/txt.csv」となってしまいます。「txt.csv」と したいのです。 ------------------------------------ FILE=/aaa/bbb/txt.csv echo ${FILE} | sed 's/\/.*\///g' FILE=/txt.csv echo ${FILE} | sed 's/\/.*\///g' FILE=txt.csv echo ${FILE} | sed 's/\/.*\///g' 環境は、 Solaris8 Bシェル |
>>4989 べた basename・dirname コマンドを使うのはダメですかね。 |
>>4990 68user >basename・dirname コマンドを使うのはダメですかね。 も考えましたが、 出来れば、使わない方法でと |
>>4991 べた 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 sed でやりたいならこんな感じかなぁ? - ファイル名 echo ${FILE} | sed 's/.*\///g' - パス名 echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' |
>>4992 zsh > 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 すみません。 > - パス名 > echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' が、上手くいきませんでした。 パス名がとれません。フルパスが返ってきます。 /aaa/bbb/txt.csv → /aaa/bbb/txt.csv /txt.csv → /txt.csv |
>>4992 zsh > 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 すみません。 > - パス名 > echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' が、上手くいきませんでした。 パス名がとれません。フルパスが返ってきます。 それと、ファイル名のみ場合は、値がなしとしたいのですが。 /aaa/bbb/txt.csv → /aaa/bbb/txt.csv /txt.csv → /txt.csv |
>>4994 べた 失礼しました。↓でどうでしょうか? echo ${FILE} | sed -n -e 's#\(.*\)/[^/]*#\1#p' |
>>4996 zsh ありがとうございます。 パス名を取り出すことができました。 ただ、以下の様に場合、上手くいきません。 「FILE=/txt.csv」の場合 「/」となりません。 ブランクというか、改行します。 「/」だけ取り出すというのは無理なのでしょうか。 「FILE=txt.csv」の場合 ブランクとなります。 正しい動きなのでしょうか。 |
nawkのユーザ定義関数について教えて下さい。 nawkで、ユーザ定義関数を呼び出して編集を行っているのですが、 ユーザ定義関数内で編集した値を、パラメータで渡した変数に設定 して返却したいのでが値が返却されません。 ユーザ定義関数内では、渡した変数に値が設定されているのですが、 関数を抜けると値が設定されていません。 どうしてなのでしょうか。 それとも、無理なのでしょうか。 パラメータで渡した変数に設定して返すことができるのでしょうか。 環境 OS:Solairs8 シェル:Bシェル(sh) -------------------------------------------------------------- nawk -v OUT=${OutFile} -F"," ' BEGIN { count = 0+0; } function chk2(arg1,arg2,val) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); sub(/^"*/,"",arg2); sub(/"*$/,"",arg2); val=sprintf("%s %s",arg1,arg2); } function chk1(arg1,val) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); val=arg1; } { chk1($1,UserID); chk2($8,$9,Name); printf("%s,%s\n",UserID,Name); #printf("%s,%s\n",UserID,Name) >> OUT; count++; } END { printf("Output number : %d\n",count); }' ${FILE} |
>>4997 べた > 「FILE=/txt.csv」の場合 パス名末尾の / を出力しないようにしていたためですね。 echo ${FILE} | sed -n -e 's#\(.*/\)[^/]*#\1#p' こうすれば出力されると思いますが、 逆に /hoge/fuga.txt のような場合でも /hoge/ となります。 > 「FILE=txt.csv」の場合 パスが指定されていないので、ブランクで正しいと思っていますが。 (そういった条件もありませんでしたし。) >>4998 ふくし nawk は参照渡しできないはずなので、そういう書き方ではできません。 ただ nawk では、ユーザ関数の引数として定義された変数を除き、 すべてグローバル変数だと思うので、やろうとしていることはできます。 |
>>4997 べた ありがとうございました。 出力されました。 |
>>4999 zsh お礼先誤りですみません。 ありがとうございます。 >> 「FILE=txt.csv」の場合 > パスが指定されていないので、ブランクで正しいと思っていますが。 > (そういった条件もありませんでしたし。) No. 4994で、自分でファイル名のみの場合、値なしとしたいと 書いておきながら正しい動きなんですかと質問すみませんで した。 |
>>4998 ふくし えっ、Solairs8 の nawk って return を使えないんでしょうか? |
>>5002 sfish man には return [expr] と記載があったので、リターンコードを返すものだと思っていましたが、 確かに値を返すことも出来ました。こっちの方がいいですね。 |
>>4999 zsh > ただ nawk では、ユーザ関数の引数として定義された変数を除き、 > すべてグローバル変数だと思うので、やろうとしていることはできます。 どういうことでしょか。 nakwで関数を作るのが不慣れなもので、 nawk内で定義した変数はグローバル変数なので、nawk内であれば、 ユーザ定義関数でも参照や書き換えができるということでしょうか。 また、 ユーザ定義関数ないで定義した変数は、関数内でしか有効とならない ということでしょうか。 例などを載せてくれるとありがたいのですが。 |
>>5004 ふくし > nawk内で定義した変数はグローバル変数なので、nawk内であれば、 > ユーザ定義関数でも参照や書き換えができるということでしょうか。 その通りです。 ただ、 >>5002 sfish で return で値が戻せることを教えて頂いたので 関数側は、 --------------------------------- function chk1(arg1) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); return arg1; } --------------------------------- のようにして、呼び出し側は --------------------------------- UserID = chk1($1); --------------------------------- とすれば、やろうとしていることができると思います。 |
初歩的な質問ですが 内蔵HDDを増設し「label:Backup」として、クリックしますと「sdb」と表示されています。 プロパティで、場所は/mntとなっています。 このHDDに mv /home/ormaster/123.txt sdb/123.txt とファイルの移動をしたいのですが方法を教えてください。 |
>>5005 zsh ありがとうございます。 |
エラーメッセージ「cannot execute binary 」についての質問。 以前にservice sendmail start 2<&1 | /bin/mail -s "件名" wenbi@akw.com.cn というコマンドを実行して、正常です。 しかし、下記のコマンドを実行して、「cannot execute binary 」というエラーメッセージを出ました。 この後、上記のコマンドを実行しても、エラーを出ます。 service sendmail start infile.txt iconv -f EUC-JP -t Shift_JIS infile.txt < infile2.txt cat infile2.txt | /bin/mail -s "件名" wenbi@akw.com.cn |
>>5006 まえ mount 済みであれば、mv /home/ormaster/123.txt /mnt/123.txt で いけるのではないかと思います。 >>5008 山田洋子 よくわかりませんが、cannot execute binary のエラーメッセージを 出力しているのが service コマンドなのか、iconv コマンドなのか、 cat や mail なのかを調べてみてはどうでしょうか。 |
nawkでsystem関数で、コマンドを実行しています。 今、system関数で実行したコマンドの結果を変数 に格納したいのですが、結果のステータスが格納 されて、コマンドの実行結果が格納できません。 どうしてなのでしょうか。そもそも不可能なのでしょうか。 system関数で、dateコマンドを実行し、結果を変数に 格納して、nawk内で使用したいのです。 nawk '{system("date +%Y%m%d")}' 環境は、 Solaris8 bsh です。 |
>>5010 ふくし system は単なるコマンドの実行であり、コマンドの標準出力を受け取るような 仕組みになっていません。この場合は getline を使うべきかと思います。 |
>>5011 68user ありがとうございます。 上手くいきました。 |
完全ガイドwindowsxp基本+Q&A 2008,3,20 p275,Q057 1・アイコンの数を増やすは、あるが、減らす方法が、無い。 2・初心者に解かるように、教えて。やり方がわからへん。 |
特定のアイコンを消す方法です。 |
はじめまして ネットワークプログラミングのページは とってもためになりました。 ・読みやすい ・わかりやすい ・内容がある すばらしいです。 少なくとも私の嗜好とあうはず。 なので、 おすすめ書籍を紹介してください! ・実践的にアプリケーションを作る ・複数ファイルのビルドを説明 ・winコンポーネント ・プロセス間通信 ・管理人さんのように読みやすく、わかる、内容がある ・ネットワークアプリ(サーバー、メーラーetc) ・c言語、perl、php(windows いま、プロキシサーバと、メールサーバに興味があるので、 それが作れるような本。(あくまでわかりやすく言ってます) ぜひ、よろしくお願いします。 |
>>5020 たろう すべての要求を満たす本はニッチすぎて存在しないと思います。 特にサーバはニーズがあまりなく、深く掘り下げるほど単なる RFC の解説になってしまうため、書籍としては成立しづらいのかも しれません。 とはいえ、いくつか提示してみます。 ○UNIXネットワークプログラミング入門 http://www.amazon.co.jp/-/dp/4774117544 この本は持っていませんが、前身である UNIXネットワーク・ベストプログラミング入門 http://www.amazon.co.jp/-/dp/4874085032 は持っています。書評は http://x68000.q-e-d.net/~68user/net/link-book.html に書いてあります。 ○Perlネットワークプログラミング―ソケットの使い方から クライアント/サーバーシステムの開発まで http://www.amazon.co.jp/-/dp/4894714655 買っていませんが、目次を見ると結構範囲は広いようです (700ページもあるから当然か…)。深く突っ込んでいるかは わかりません。 ○基礎からわかるTCP/IP ネットワーク実験プログラミング http://www.amazon.co.jp/-/dp/4274065847 アプリレイヤではなく TCP/IP 寄りですが、結構おもしろいことを やっていて勉強になります。読みやすいかというと、個人的には ちょっとつらいです (一枚の複雑な図があって、それを長い文章で 解説するのは無理がある。まぁ書籍だから仕方ないかもしれませんが) あとは、いずれも持っていませんが、 オンラインゲームプログラミング http://www.amazon.co.jp/-/dp/4797328479 MMORPGゲームサーバープログラミング http://www.amazon.co.jp/-/dp/4797328460 といったアプローチもアリかもしれません。 |
>>5021 68user 68userさん。 お返事ありがとうございます。 なんだがいろいろ調べていただいたようで、ありがとうございます。 (68userさんは上級者なんでしょうね) linuxシステムプログラミング http://www.amazon.co.jp/Linux%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E5%9E%B0%E4%BA%95-%E6%AD%A3%E9%9B%84/dp/4274079724/ref=sr_1_2?ie=UTF8&s=books&qid=1247282246&sr=1-2 (私の知りたいことは「プロセス間通信」で、「システムプログラミング」って範疇に入るんだなぁ) これでも読んでみようかと思ってます。 プロセス間通信がわかれば、 数あるソフトウェアを自在に連携して使いこなすことができるる!」 こう思っているが、合ってますでしょうか。(^−^;) |
>>5022 たろう 共有メモリなどのプロセス間通信は、同一サーバ内のプロセスで データをやりとりする仕組みで、他サーバとはやりとりができません (とはいえ MySQL や PostgreSQL なども使っている重要な機能ですが)。 複数クライアントからの情報をサーバ内で効率よく共有するためには 役立つのは確かでしょうが、多くのマシンで連携するクラウドばやりの 昨今では、学習の方向性としてはちょっとずれているかもしれません。 |
68userさん はじめまして、鈴木と申します。 SSLクライアント接続のプログラムを作成していた友人から 「SSL_connect() を実行すると -1 が返る。」という相談を受けて、調べている中で、 68userさんの下記ページの、RAND_seed() の説明で解決することができました。 http://x68000.q-e-d.net/~68user/net/ssl-1.html 本当にありがとうございました。 今回、書き込みさせていただいたのは、その続きなのですが もし、ご存知でしたら教えていただけないでしょうか。 【質問の内容】 (1)XPでは、RAND_seed()を実行しなくても、乱数の種が不足することはないのでしょうか? (2)ユーザプログラムでRAND_seed()実行しない場合、OpenSSLは、OS(Windows)からどのようにして 乱数の種を取得するのでしょうか? 以下に、質問に至った経緯を記します。 【友人との話の経緯】 当初、前述の友人が作成したRAND_seed()していないSSLクライアントプログラムを 私の環境(WindowsXP Pro(SP2))で実行しても、SSL_connect()ではエラー(-1)は 発生しませんでした。 友人の環境を確認するとWindowsNT4.0ワークステーション(SP3)でした。 どうしても、この古い環境でSSLクライアント接続のプログラムを動かしたいとのこと。 結局、友人の環境(WindowsNT4.0ワークステーション(SP3))では発生しますが、 私の環境(WindowsXP Pro(SP2))では100回ほどテストしましたが発生しませんでした。 【試した内容】 前述の内容を下記にまとめます。 (友人の環境) WindowsNT4.0ワークステーション(SP3):× SSL_connect() ⇒ (-1)が返る (私の環境) WindowsXP Professional(SP2) :○ SSL_connect() ⇒ 正常 どちらも、PCの電源オン後に自動ログインして、SSLクライアントプログラムを 自動起動するようにしています。 使っているOpenSSLのバージョンは私も友人も0.9.8Gです。 という経緯があって、以下の点についてご存じであれば教えていただけないでしょうか。 ・XPでは、RAND_seed()を実行しなくても、乱数の種が不足することはないのでしょうか? ・ユーザプログラムでRAND_seed()実行しない場合、OpenSSLは、OS(Windows)からどのようにして 乱数の種を取得するのでしょうか? 何卒よろしくお願い致します。 |
>>5024 鈴木 Windows に詳しくないので直接の回答はできませんが、 - 前提として、RAND_poll(3) は呼んでいますか? - プログラムの各部分に RAND_status(3) を実行し、 seed の状況を確認することで、何を行うと十分な seed がたまるか確認できるのではないでしょうか。 - Windows 用の RAND_poll(3) や RAND_add(3) のソースは http://cvs.openssl.org/fileview?f=openssl/crypto/rand/rand_win.c&v=1.46 にありますので、眺めてみてはどうでしょうか。 - RAND_seed(3) は最終的には RAND_add(3) を呼ぶ…と思うのですが、 ソースを見てもそのつながりがよくわかりませんでした。 と思いました。 |
UNIXの初歩的なことですみません。 UNIXで、viを使用するときシェルの環境変数の設定などは 必要なのでしょうか。 cronを編集しようとして、「crontab -e」を実行したの ですが、正しく表示されませんでした。 「crontab -l」では、正しく見れます。 環境変数のEDITORに、”vi”を設定し、「crontab -e」を 行うと、正しく表示されます。 ここでなのですが、unixにログインし、コマンドラインから、 viを起動すると問題なく使用できるのですが、ログインの場合 環境変数のEDITORは関係ないのでしょうか。 それとも、そういうものなのでしょうか。 環境は、 solaris8 bシェル |
>>5027 sep 環境変数 EDITOR は、単に vi(vi コマンド)を使用する場合には 必要ありません。 crontab コマンドのように、エディタを選択できるプログラムが 参照します。 http://x68000.q-e-d.net/~68user/unix/environment.html#EDITOR なお、crontab コマンドでは、EDITOR が設定されていない場合は ed コマンドで編集画面が開きます。 |
はじめまして POP3 クライアントを作ってみよう(3) のページにて > APOP はその原理上、必ずサーバ側に生パスワードを保存しておく必要があります。... > CRAM-MD5 や CRAM-SHA などの認証方法がありますが、サーバ側に生パスワードを保存しておく必要はありません。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ とありますが、CRAM-MD5 (や DIGEST-MD5) は生パスワードを サーバ側が保持していなければならないと理解しておりましたが如何でしょうか? サーバーは,認証の際に 「クライアントから受信した文字列(暗号化済み)」と, 「送信したChallengeコードと(サーバー側の)『ユーザのパスワード』をMD5で暗号化したもの」を 比較する必要がありますので...。 |
ご指摘ありがとうございます。勘違いしていたようです。 以下のように修正いたしました。 http://x68000.q-e-d.net/~68user/net/pop3-3.html - 一方 IMAP というプロトコルには APOP と似た認証の仕組みとして、 - CRAM-MD5 や CRAM-SHA などの認証方法がありますが、サーバ側に - 生パスワードを保存しておく必要はありません。 + SMTP や IMAP には APOP と似た認証の仕組みとして、CRAM-MD5 や、 + それを改善した DIGEST-MD5 などの認証方法がありますが、こちらも + 同様にサーバ側に生パスワードを保存する必要があります。 |
管理人様、失礼いたします。 この度、私の運営する掲示板への度重なるスパム書き込みに対する対策を行っております。 つきましては、せっかくなら私のサイトだけに囚われず 一般の皆様にも使用していただけた方が良いかと思い 絶対に荒らされない掲示板サービスを立ち上げようと考えております。 スパムに悩まされない掲示板に興味が御座いますでしょうか? また、使っていただける皆様と共同して随時機能を追加して参ります。 掲示板サービスに対するご要望があれば、 下記のメールアドレスにご連絡いただければ 追って準備が整い次第、お知らせをさせていただきます。 掲示板サービス以外のメールは、一切送信いたしません。 antispambbs@gmail.com それでは、貴重なスペースをありがとう御座いました。 書き込み内容がサイト内容とそぐわない場合は、 大変お手数ですが削除いただきますようお願いいたします。 失礼いたします。 |