たびたびすいません!!今学校でパソコン同士のデータのやり取りを、Cプログラムでなんとかやろうとしているのですがわからんのですー!先生はfopenとか使えばできるだろー!!というのですが本を見てもかいてないようなかんじで(_m_!)なにしろ未熟者でわからんのですー!よろしければおしえてもらえますか? |
>>2414 ぶちお > 今学校でパソコン同士のデータのやり取りを、Cプログラムで > なんとかやろうとしているのですがわからんのですー! さて困ったものですね。あまりにもひどい質問の仕方です。 http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse は読んでいただけましたか? パソコンって何ですか? UNIX ですか? Windows ですか? それ以外ですか? 具体的な OS 名とそのバージョンは? データのやり取りって具体的に何をしようとしていますか? フロッピーからデータを読み込むことですか? LAN 経由で ファイルを読むことですか? RS-232C 経由でデータを やりとりすることですか? 今後、こういう調子の質問を続けるつもりでしたら、僕は お相手を致しかねますのでよろしく。 |
ふくしさん、お返事ありがとうございます。 PPM.pmの1586行目付近は、下のようになっていました。 1577:unless ($PPDfile && $$PPDfile) { 1578: foreach (keys %repositories) { 1579: my $location = $repositories{$_}{'LOCATION'}; 1580: if ($location =~ /[^\/]$/) { $location .= "/"; } 1581: $$PPDfile = $location . $package . ".ppd"; 1582: return %PPD if (%PPD = getPPDfile('package' => $$PPDfile, 1583: 'parsertype' => $parsertype, 'PPDfile' => \$$PPDfile)); 1584: undef $$PPDfile; 1585: } 1586: return unless $$PPDfile; 1587:} ちょっと違うみたいですよね。こちらの方が行が短いのでしょうか。 ちなみにDOS窓に入力したのは、 C:\>ppm これだけです。 PPM のシェルでパッケージのinstallをしようと思っているのですが、 とりあえずPPMを起動するため、入力しているのはppmという文字だけ です。そして、ppmとだけ入力すると、例のエラーが出るのです。 少ない情報ですが、何か分かりますでしょうか? やはりActivePerlを入れ直してみた方が良いのでしょうか? よろしくお願いします。 |
>>2416 ぶぶ 先ほど、Windows2000 に ActivePerl を入れる必要が あったので試してみたのですが、ppm とだけ 打つと PPM interactive shell ... と出てエラーは出ませんでした。 インストールしたのは最新の build 631 (perl-5.6.1) です。 再インストールは悪くない選択肢ではないかと思います。 |
>>2416 ぶぶ さん: いま会社で ActivePerl の環境がないのでテストできませんが、 >return unless $$PPDfile; ここで >>Can't use an undefined value as a SCALAR reference (スカラーの参照として、未定義値は使えません) ですよね。 $$PPDFile というのは、 $PPDFile というスカラー変数に スカラーへの参照(別のモノを指し示すもの)が入っていると考えて、 そのスカラーの値を返そうとしているわけですが、 そのとき $$PPDFile に undef が入っているのでくだんのエラーが 出ています。 たぶん $PPDFile という変数にもっと上の方でスカラーへの参照を セットすることを期待して動いていたのですが、 その期待が裏切られているようです。 (その上でいろいろしているのも、$$PPDFiles つまり $PPDFiles が指し示すスカラーメモリに対してで、 $PPDFiles にどのような論理で何が入っているかは 下のコードからは不明です) ・・・という風にさかのぼって研究しても勉強になると思いますが、 (意外ともうちょっとでパキッとわかったりして) いずれにせよこんなアンフレンドリーなメッセージが出て中断するのは 作者の意図と違う動作なので、再インストールでもいいと思います。 |
ふくしさん、68userさん、お返事ありがとうございます。 build631をインストールしてみましたら、何の問題もなくPPMの シェルが起動しました。 インストールしてから、PPM.pmを覗いてみると、1586付近は、 ふくしさんが書かれたものと同じになっていました。 前に入れていたものがおかしかったのでしょうか。入っている pmファイルがおかしいとは夢にも思わなかったので再インスト ールを試さずに質問してしまってごめんなさい。 これでやっとパッケージのinstallができます。ありがとうご ざいました。 PS. ふくしさん、エラーに関する説明ありがとうございます。 エラーの出る仕組みがよく分かりました。 |
ボーランドC++コンパイラーでC言語のCGIを作ろうと思っているのですがどうしたら良いのでしょうか? bcc32 -o CGI名 ソース名 でいけるのでしょうか? よろしくお願いします |
>>2420 初心者 > …でいけるのでしょうか? 試してみた結果どうなりましたか? |
メール受信時に"newaliases"コマンドを実行したいのですが、上手くいきません。 方法としては、特定のアドレスにメールが届いた時点でシェルスクリプトを実行するようエイリアスファイルにて設定しており、シェルスクリプトにはsudoで"newaliases"を実行するよう書いています。 また、sudoersにて"newaliases"コマンドをroot権限で実行できるようにも 設定しています。 "newaliases"コマンドではなく、他のコピーコマンド(cp)などは動作するのですが、"newaliases"コマンドは動作しません。 同じような方法を取られている方がいらっしゃいましたら 設定方法を教えていただけませんでしょうか。 宜しくお願いいたします。 |
申し訳ありません。環境を全く書いていませんでした。 RedHat Linux7.1.J、Sendmail8.11.5 です。 宜しくお願いします。 本文↓ メール受信時に"newaliases"コマンドを実行したいのですが、上手くいきません。 方法としては、特定のアドレスにメールが届いた時点でシェルスクリプトを実行するようエイリアスファイルにて設定しており、シェルスクリプトにはsudoで"newaliases"を実行するよう書いています。 また、sudoersにて"newaliases"コマンドをroot権限で実行できるようにも 設定しています。 "newaliases"コマンドではなく、他のコピーコマンド(cp)などは動作するのですが、"newaliases"コマンドは動作しません。 |
>>2423 橋本 どのユーザが「newaliases を root 権限で実行できる」ような 設定になっていますか? また、sudo のログには何と記録されていますか? |
>>2424 68user だけでは情報が不十分かな…。 sudoers に書いた内容と、「特定のメールアドレスにメールが 届いたらコマンドを実行する」というのをどうやって実現して いるか (/etc/aliases とか /home/foo/.forward とか) も 書いてください。 |
>>2424 68user newaliasesをroot権限で実行できるユーザは"deamon"に設定しています。 理由は、メール受信時に実行されるシェルスクリプトが一体どのユーザで 実行されるか分からなかったため、シェルスクリプト内にメールを送信 するコマンドも記述したところ、"deamon"という送信者名でメールを送信 したため、deamonでシェルスクリプトは実行されると思い設定しました。 ですが、実際はdeamonが実行しているようではないようです。 >>2423 にてcpコマンドなど他のコマンドは動作する。 と記述しましたが、私の勘違いで動作していませんでした。 申し訳ありません。 また全てのユーザに"newaliases"、"cp"コマンドをroot権限で 実行できるよう設定したところ、正常に動作しました。 ですが、全てのユーザに許可してしまうわけにはいかないので、 どうにかして特定のユーザにのみ許可して動作するようにしたいのですが ・・・。 以下設定ログ・設定内容です。 ●メール受信時のログ↓ Jan 21 18:20:16 test sudo(pam_unix)[19079]: authentication failure; logname= uid=0 euid=0 tty= ruse r= rhost= user=daemon Jan 21 18:20:23 test sudo(pam_unix)[19079]: 2 more authentication failures; logname= uid=0 euid=0 t ty= ruser= rhost= user=daemon Jan 21 18:20:23 test sudo[19079]: daemon : 3 incorrect password attempts ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/newaliases ●sudoersに追加↓ deamon ALL= NOPASSWD: /usr/bin/newaliases deamon ALL= NOPASSWD: /bin/cp ●メール受信時に動作するシェルスクリプト↓ #!/bin/sh sudo cp /etc/mail/123.txt /etc/mail/456.txt sudo newaliases mail -s test mailuser@****.co.jp < /etc/mail/456.txt exit 長文で申し訳ありませんが宜しくお願いします。 |
>>2425 68user 「特定のメールアドレスにメールが届いたらコマンドを実行する」は、 (/etc/mail/aliases)に mailuser :"|/etc/mail/mail-program" と記述しています。 よろしくお願いします。 |
>>2427 橋本 > ●メール受信時に動作するシェルスクリプト で /usr/bin/id > /tmp/id.result などとすれば、どの権限で 動いているのかがわかります。 一般的には、/etc/mail/aliases に mailuser :"|/etc/mail/mail-program" とあるなら、/etc/mail/mail-program というファイルの権限で動きます。 例えば % ls -l /etc/mail/mail-program -rw-r--r-- 1 hoge wheel 46632 Sep 19 02:30 /etc/mail/mail-program ならば hoge 権限で動く、ということです。 |
>>2428 ですが、 mail-programの権限は以下のようになっています。↓ -rwxr-xr-x 1 root root 165 1・21 19:55 mail-program また /usr/bin/id > /tmp/id.resutl の結果は以下になりました。↓ uid=2(daemon) gid=2(daemon) groups=2(daemon),1(bin),4(adm),7(lp) やはり"deamon"で実行されているようです。sudoresにも正しく設定して いるつもりなのですが、シェルスクリプトは動作しません。 deamonに関してはsudoが使えないのでしょうか。 何かよい方法ありましたら教えてください。 宜しくお願いします。 |
>>2429 橋本 …ふむ。 deamon でなく daemon です。sudoers を修正してみて下さい。 |
>>2429 橋本 どうもありがとうございます。 deamonではなく"daemon" に修正したところ上手くいきました! とてもお恥ずかしいですが、すごくうれしかったです。 ありがとうございました。 |
こんにちは。ヒサブリに質問です。 下のような CGI で euc、sjis の文字列をブラウザに表示します。 #! perl -w # ~/public_html/cgi-bin/moji.cgi use CGI; use Jcode; my $q = CGI->new; print $q->header(); print $q->start_html(); print $q->start_form(-action=>'./answer.cgi'); $str_euc = 'こんにちは'; $str_sjis = $str_euc; Jcode::convert(\$str_sjis, 'euc', 'sjis'); print "euc: $str_euc <br>"; print "sjis: $str_sjis <br>"; print "unpacked euc: ".unpack("H10", $str_euc)."<br>"; print "unpacked sjis: ".unpack("H10", $str_sjis)."<br>"; print "eq:".($str_euc eq $str_sjis)."<br>"; コード自体は EUC で書きました。 ブラウザの設定を EUC にすると、 当然のように、EUC 部分は正しく、sjis 部分は文字化けになります。 (本当は sjis 部分は半角カナになりました) (http://www/~fukushi/cgi-bin/moji.cgiの表示) euc: こんにちは sjis: 、ウ、・ヲヒ、チ、マ unpacked euc: a4b3a4f3a4 unpacked sjis: 8ea48eb38e eq: これ、ブラウザの設定を sjis にすると、 euc も sjis も文字化けになります。 これはなぜでしょう? (http://www/~fukushi/cgi-bin/moji.cgiの表示) euc: 、ウ、・ヲヒ、チ、マ sjis: 痔宍痔・ヲ射痔蔀痔煮 unpacked euc: a4b3a4f3a4 unpacked sjis: 8ea48eb38e eq: で、下のように出力する文字列を URL から取得します。 #! perl -w # ~/public_html/cgi-bin/moji.cgi use CGI; use Jcode; my $q = CGI->new; print $q->header(); print $q->start_html(); print $q->start_form(-action=>'./answer.cgi'); $str_euc = $q->url_param('greeting'); $str_sjis = $str_euc; Jcode::convert(\$str_sjis, 'euc', 'sjis'); print "euc: $str_euc <br>"; print "sjis: $str_sjis <br>"; print "unpacked euc: ".unpack("H10", $str_euc)."<br>"; print "unpacked sjis: ".unpack("H10", $str_sjis)."<br>"; print "eq:".($str_euc eq $str_sjis)."<br>"; こうすると、ブラウザの設定を euc にすると、 なんと、euc も sjis も正しく表示されます。 (http://www/~fukushi/cgi-bin/moji.cgi?greeting=こんにちは の表示) euc: こんにちは sjis: こんにちは unpacked euc: a4b3a4f3a4 unpacked sjis: 8ea48eb38e eq: ブラウザの表示を sjis にすると、euc 部のみ正しく表示されます。 (http://www/~fukushi/cgi-bin/moji.cgi?greeting=こんにちは の表示) (http://www/~fukushi/cgi-bin/moji.cgiの表示) euc: こんにちは sjis: 、ウ、・ヲヒ、チ、マ unpacked euc: a4b3a4f3a4 unpacked sjis: 8ea48eb38e eq: これはなぜでしょう? サーバーの OS は FreeBSD 2.2.8-RELEASE、 言語は jperl5.005_03-990612 EUC Version(Latin モードで使用)、 クライアントの OS は Windows 2000 server、 ブラウザーは Netscape Navigator 4.75 です。 |
今日は。 Awkで {AA [$1]++} END {for (BB in AA) ...........} とやると、AAの中に有る同じ名前のものが幾つあるか数えてくれると思うの ですが、Perlではどうやったら同じことが出来ますか? 例えば @array=(9, 9, 9, 3, 3, 3, 2, 2, 1) とすると、 9は3個、3は3個、2は2個1は1個あるので、 9=3 3=3 2=2 1=1 としたいのですが、宜しくお願いいたします。 |
>>2433 ミング さん: なんとなく似せて書くと #! perl @array = (9,9,9,3,3,3,2,2,1); for (@array) { $array2{$_}++; } for (reverse sort keys %array2) { print "$_=$array2{$_}\n"; } とか。 「ハッシュ」の機能を使っています。 @array の順番には関係なく、 常に大きな数字から出力していますがいいでしょうか。 (ハッシュを使うと、順不同になるので、、) |
>>2432 ふくし > Jcode::convert(\$str_sjis, 'euc', 'sjis'); 逆ですよー。 Jcode::convert(\$str_sjis, 'sjis', 'euc'); |
だれか、solaris8intel_platformをAT互換機で動作する、LANカードを 知っている方いらっしゃいますか? |
>>2435 68user あ、ほんとだ、、すみませんいつもいつも、、(_ _) で、 #! perl -w use CGI; use Jcode; my $q = CGI->new; print $q->header(); print $q->start_html(); print $q->start_form(-action=>'./answer.cgi'); $str_euc = 'こんにちは'; $str_sjis = $str_euc; Jcode::convert(\$str_sjis, 'sjis', 'euc'); print "euc: $str_euc <br>"; print "sjis: $str_sjis <br>"; print "unpacked euc: ".unpack("H10", $str_euc)."<br>"; print "unpacked sjis: ".unpack("H10", $str_sjis)."<br>"; print "eq:".($str_euc eq $str_sjis)."<br>"; だと euc モードで、どっちの「こんにちは」も正しく表示されるのは なぜでしょうか? |
>>2436 Bourbon どの程度「使える」資料なのかは知りませんが、 ハードウェア互換リスト (HCL) http://soldc.sun.com/support/drivers/hcl_ja/ というのがあります。 |
>>2437 ふくし > euc モードで、どっちの「こんにちは」も正しく表示されるのは > なぜでしょうか? http://x68000.startshop.co.jp/~68user/tmp/moji.cgi を見ても「こんにちは」が正しく表示されますか? もしそうなら、Netscape4 が自動変換しているのでしょう。Netscape4 は、 文字単位か行単位か知りませんが、ファイルの一部についても自動認識/ 自動変換を行っています。 FreeBSD+Netscape4、FreeBSD+Mozilla nightly build で上記 URL を 見ると、必ず片方は化けています。 |
68userさん HCLは知っていましたが、見落としている部分がありました。 じっくり読んでみます。ありがとうございます。 |
たびたびお世話になります。 おかげさまで、この前使えるようになったPPMで、ImageMagickモジュ ールをinstallして、使おうと思ったら、何にも反応なしで困っていま す。いろいろサイトを見て回りましたが、類似問題は見あたらず・・・。 環境は、Perl5.6.1(build631) Windows98です。 この環境に、PPMで、install Image-Magick してImageMagickを入れ ました。 C:\>ppm PPM>install Image-Magick です。 その結果、c:\perl\site\libにはimageディレクトリができていて、 その中にはちゃんとMagick.pmというのもあるようです。 それで、下のを実行してみたのです。 use Image::Magick; $i = Image::Magick->new; $i->Read('test.jpg'); $i2 = $i->Clone(); $i->Scale(width=>100, height=>100); $i->Write('test2.jpg'); すると、Perlそのものは正常に終了する(エラーは出ない)のですが、 test2.jpgはできてないのです。 ちなみに下のようなのも実行してみました。 use Image::Magick; $img = Image::Magick->new; $img->Read('test.jpg'); ($w,$h) = $img->Get('width','height'); print "Content-type: text/html\n\n"; print "<html><head><title>TEST</title></head>\n"; print "<body bgcolor=\"\#ffffff\">\n"; print "$w / $h\n"; print "<br></body></html>\n"; exit 0; こちらも、$wも$hも空でした。 test.jpgは存在しているし、どうしてうまく行かないのか、まった く見当もつかないので、これだけの情報では不足かもしれませんが、 何か分かる方おられましたら、ご指導ください。どうかよろしくお 願いします。 |
>>2439 68user さん、どうも。 たしかに両方化けずに見えています。 FreeBSD 版では片方化けるんですね。 なるほど、Windows 版 NC はファイルの一部も自動変換、、 しかもブラウザーが渡す URL の文字列は必ず sjis。 これがわかんなくてホボ一日ハマりました。 パラメタはあらかじめ変換しておくのを原則にすればよかったのですが、 表示を見て正しく EUC で入ってくるものと思い込んでいたのです。 |
>>2441 ぶぶ さん: 1本目のプログラムですけど動きましたよ、、;;; test.jpg がなくてもちゃんと動きますね。 その場合はおっしゃるような症状になります。 ということで、test.jpg があるディレクトリが カレント ディレクトリな状態で実行してないとか、、。 test.jpg を C:\test.jpg とかフルパスで指定するとどうなります? #これ便利だなー^^ |
ふくしさん、お返事ありがとうございます。 C:\〜\test.jpg のように、フルパス指定したら動きました。 あと、DOS窓では./test.jpgでもうまくいきました。 でも、CGIとしてAN-HTTPD(ver1.37c/PerlISを利用)を通して 動作させると、CGI(test.cgi)と同じディレクトリにtest.jpg がある時に、フルパスならうまくいくのに./test.jpgでは、やっ ぱりうまくいきませんでした。 で、いろいろやっていると、PerlIS.dllを使うとうまくいかず、 Perl.exeを使うとうまくいくことが分かりました。 PerlISの問題だったようです。 でも、とりあえず動作させることができたので、解決です。 ありがとうございました。 #ちなみに同じような処理(画像の縮小拡大)はGDでもできますが、 #jpeg画像を縮小したときの画質はGDよりImageMagickの方が、 #なめらかできれいでした。 |
>>2444 ぶぶ 解決したようですが、ふつーは $i = Image::Magick->new or die "$!"; $i->Read('test.jpg') or die "$!"; $i2 = $i->Clone() or die "$!"; などと、エラーチェックをするものです。 と書こうと思ったら、Read は存在しないファイルを開いても 0 を返さないから、die じゃあダメなんですね。 $ret = $i->Read('a.gifs'); とかして、$ret を調べて、 Warning 330: Unable to open file (a.gifs) [No such file or directory] とかを解析しないといけないらしいです。Image::Magick、ダメすぎ。 >>2443 ふくし > しかもブラウザーが渡す URL の文字列は必ず sjis。 http: //host/dir/hoge.cgi?ほげ とかですか? |
>>2445 68user さん: >> しかもブラウザーが渡す URL の文字列は必ず sjis。 > http: //host/dir/hoge.cgi?ほげ > とかですか? http://host/dir/hoge.cgi?hoge=ほげ とかです。 CGI には sjis で渡るのに、表示は正常に行なわれます。 |
どうも、ご無沙汰しております。yujiです。^^ お世話になっております。 現在、windows2000+apache+activeperlの環境において、 CGI(perl)からapacheの再起動等を行いたいのですが、 apacheのパスにスペースが入っているためか、 コマンドを実行できず、困っております。^^; 具体的には、 パスが、 d:\Program Files\Apache Group\Apache\Apache.exe のような形です。 実行部分は、 $cmd="d:\\Program Files\\Apache Group\\Apache\\Apache.exe -w -n \"Apache\" -k restart"; system($cmd); のような形です。 パスのスペース部分をアンダースコアに変更して試してみたりも したのですが、うまくいかないようでして。^^; それぞれのフォルダ名にスペースを含めないようにすれば、 解決できるのかもしれませんが、スペースがあった場合に 対応できないものか、と思いまして。 みなさんなら、どうされますか? もしよかったら、アドバイスを、 どうぞよろしくお願いいたします。 |
>>2447 yuji Windows で perl スクリプトを作ったことがないのでアレですが、 $cmd="\"d:\\Program Files\\Apache Group\\Apache\\Apache.exe\" -w -n \"Apache\" -k restart"; はどうですか? >>2448 68user > http://host/dir/hoge.cgi?hoge=ほげ まぁ、規格で定まっていない部分ですから仕方ないですね。 IE だと (設定次第ですが) UTF-8 で送ることもありますし。 |
>>2448 68user 初めて ActivePerl といふものでプログラムを組んでみました。 やはり "" で囲めばよろしいようで。 DOS 窓から C:\> d:\\Program Files\\Apache Group\\Apache\\Apache.exe とするとダメだけど、 C:\> "d:\\Program Files\\Apache Group\\Apache\\Apache.exe" なら OK、というのと同じですね。 |
>>2448 68user さん: >> http://host/dir/hoge.cgi?hoge=ほげ >まぁ、規格で定まっていない部分ですから仕方ないですね。 >IE だと (設定次第ですが) UTF-8 で送ることもありますし。 えーそうなんだ、、それは困るな。 やっぱり世間の検索エンジンみたいに hoge=%A4%BD%A4%B2 とかすべきですね。 日本語キーにするなって話もありますが。 |
68userさん、アドバイスありがとうございます。^^ おかげさまで、無事コマンドを実行することができました。 DOS窓でもスペースがある場合、実行できなかったため、^^; スペースを、区切りではなく文字列の一部と認識させるために、 "で括る方法、とても勉強になりました。^^ |
>>2451 yuji Windows 2000 とかだと、エクスプローラーでフォルダをドラッグし、 コマンドプロンプトにドロップすれば、 "c:\WINNT\program files\" などと "" 付きでフルパスが展開されます。エクスプローラーで ファイルのフルパスを簡単に取得する方法はないのかなぁ。 >>2450 ふくし > hoge=%A4%BD%A4%B2 とかすべきですね。 そうですね。ただ、詳しくは知らないんですが、遷移先にどんな文字 コードを使っているかを伝えられるような送信方法もあったはずです。 RFC になってたかなぁ。 今日の大発見: cd - で一つ前にいたディレクトリに戻れる! (sh, csh, tcsh で確認) これは知らんかったなぁ。 |
file.1 file.2 ... file.9を一括で file-1 file-2 ... file-9に変換したいのですがどうすればよいでしょう? 稚拙な質問で申し訳ありません 使ってるのは tera term です。 |
>>2453 宮村 TeraTermにそんな機能はないだろ。 |
No. 2453 # 宮村 ここなど参考にしてみては。 http://www.nurs.or.jp/~asada/FAQ/UNIX/section2.6.html |
>>2454 * そういう物言いをしたいなら、2ch へどうぞ。 |
できました。教えてくれた方、ならびにカキコ有無にかかわらず少しでも考えてくれた人とてもありがとうございました。これで単位がもらえます。 |
はじめまして、とっしーです。 知っている人がいたら、何かいいお知恵をお願いします。 CGI上でソケット通信をして、他のサーバからデータを取り込み ブラウザ上にてデータ表示をしているのですが。 ソケット通信をするサーバが2個あり1番目のサーバタイムアウト後 2番目のサーバに対してソケット通信をしたいのですが、 sub aaa{ $SIG{ALARM} = sub{exit 1;}; alarm($timeover); $socket = IO::Socket::INET->new(); 〜 } 上記のようなタイマでタイムアウトを検出しても、このサブルーチンの 起動元までリターンしません。(T_T) 起動元までリターンするような、プログラム方法等があればお教えください。 |
>>2458 とっしー うーん、まずは exit してプロセスが終了してるんだから、 どこにも戻りようがない、というところから始めましょうか。 で、どう書くのが正しいのかなぁ。 |
はじめまして。かいとです。 こちらのサイトにある「HTTPクライアントを作ろう(C言語版)」を利用させていただきました。 ありがとうございます。そこで、1つ質問なのです・・・・ connect()でタイムアウト時間を指定したいのですが、できるのでしょうか? ちなみにOSはSolaris2.7、コンパイラはWorkshopのccを使ってます。 どうぞよろしくお願いします。 |
>>2460 かいと ノンブロッキングソケットを使うと、connect を呼ぶとすぐに 制御が帰ってきます。僕はノンブロッキングソケットを使った ことがないので、これをキーに検索してみて下さい。 |
初めまして。snowと申します。 今、8ビットJISで作成されたファイルをSJISのファイルに変換しようと思っているのですが、中々上手く行きません。どなたか教えて下さい。お願いします。 因みに今までは、Pro*Cのプログラム上で、単語毎にjis8touj関数を使用していました。 |
>>2462 snow jis8touj って何かと思ったら http://ecip01.cc.kurume-it.ac.jp:8888/ab2/coll.141.9/JFPDEV/@Ab2PageView/2444? これですか? Solaris only の、しかもあまり利用者が多そうでない ライブラリの話なのですから、何がどううまくいかないか 書かないと回答はもらえないでしょう。 |
基本的なことで、ほんとにすいません。どなたか、solaris8のGUIで Windowsのような[Print]、[Alt]+[Print]のようなハードコピーを するやり方をご存知の方は教えてください。よろしく |
>>2464 # Bourbon まったく知らない領域のことなのですが、恥を忍んで。 「Solaris ハードコピー」で検索をかけた限りでは http://www.advac.co.jp/download/gpr_dl.htmlのような プリントサーバソフトウェアにはそういった機能が 付いていることが多いようです。 こんなのも見つかりましたが、参考になるでしょうか。 http://www.aitech.ac.jp/ie/~milabo/unixmanual/man0.html#19 |
>>2464 Bourbon さん: solaris じゃなくって Linux でしたけど、 やはりハードコピーが必要になって gimp というペイントソフトの 機能を使ったらできました。 solaris で gimp は走ったかなー? |
Perl の質問です。 わけあって、プログラムの終端に goto で飛んでいます。 (CGI なので、exit だと、mod_perl に移植したときに mod_perl ごと死んでしまうと聞いたので) で、 goto FIN if(事情); ... FIN: sub サブルーチン { ... } と書くと、サブルーチン定義のところで syntax error になるんですが、 goto FIN if(事情); ... sub サブルーチン { ... } FIN: だと大丈夫です。なぜでしょうか〜? |
>>2464 Bourbon xwd とかじゃあダメですか? あるいは Solaris と Windows 両方に VNC を入れて、Windows 側から Solaris の画面を キャプチャ、とか。Solaris 標準の CDE でキャプチャする 方法は知りません。 >>2467 ふくし perl の構文解析のバグなんでしょうね。 FIN: ; sub サブルーチン { なら OK のようです。 |
ちょっと脱線A^^; >>2466 ふくし 会社のSolaris(多分8)では、gimpが立ち上がりました(親切な方がコンパイルしてくれたっぽい)。 とはいえ、 >>2467 ふくし CDEは嫌いなので使ってないので、CDEの標準な方法は知りません・・・ |
>>2469 の、 >>2467 ふくし は、 >>2468 68user の間違いです。汚してしまって、すみません。 |
>>2468 68user さん: お、バグですか!^^ 最新バージョンで試してレポートしちゃる!^^ >>2469 へにか さん: gimp 走りますか! 最近 solaris が増えてきたので、 役に立つかも。Alt+ScreenShot 系のキャプチャーは gimp に限ります。そぅとぅ〜便利です。 そのまま流れるように編集できるし。 最近なんか solaris の仕事多いんだけど気のせいかな? ココの問い合わせも増えてますよね。 |
>>2467 ふくし http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl1.html ここの・・・ 8. exit()は使用できない exit()は使用できません。代わりに Apache::exit()関数が用意されています。 以下の判定でexit関数を他の関数にオーバライドできます。 use subs qw(exit); *exit = $ENV{MOD_PERL} ? \&Apache::exit : sub { CORE::exit }; |
>>2472 * さん: ありがとうございます! それは使えそうですね。 use Apache するのかな。(あ、調べますしらべます ^^) |
いつもお世話になります。 solarisでマシンにSICIカードを取り付けテープデバイスに装着させる場合、マウントするにはどのようにすればよいでしょう? 簡単でよいので教えてください。 |
>>2474 fairytale テープって mount できるんでしたっけ。 僕はいつも mount せずに % tar cf /dev/rmt/0 . とかやってますが。 |
tar cvf - . | ...と書いてある‘-‘の意味を教えて下さい。 |
>>2476 tarbo 標準入力 or 標準出力です。 大抵、man tar の -f オプションのところに書いてあります。 |
始めまして。ツバサと申します。 さっそくですが、質問させて下さい。 こちらのネットワークプログラミングの基礎知識を元にFTP送信処理をC言語で作成しています。 あるマシンへの送信が上手く行かないのです。 PORTコマンドのレスを読み込む時にread関数でエラーになってしまいます。 レスが返って来ないという事があるのでしょうか? ユーザーの認証などでは問題なくレスを取得できているようなのです。 それも、そのエラーが出るのはある特定のマシンへの時だけです。 何かお分かりになる事がありましたら、お願いします。 あいまいな質問で申し訳ありません。 |
すみません。 No.2478の書き込み時に遊び用のHNで送信してしまいました。 なので、内容で名乗っている名前と表題に出ている名前とが 違っています。 こんな理由なので、ご容赦下さい。 |
質問があります。 solaris2.6で例えば自マシンの/dev以下に、他マシンの/etc以下を mountする時の、書式を教えてもらえないでしょうか?すみません |
>>2478 まい > PORTコマンドのレスを読み込む時にread関数でエラーに > なってしまいます。 「エラー」って具体的に何が起こるんですか? >>2480 ui > solaris2.6で例えば自マシンの/dev以下に、他マシンの/etc以下を > mountする時の、書式を教えてもらえないでしょうか?すみません NFS を使いたいわけですか? ならばこちらなど。 http://www.google.com/search?hl=ja&q=mount+solaris2.6+nfs&lr=lang_ja でも、/dev に /etc を mount するのは多分うまくいかないと 思いますよ。デバイスにアクセスできなくなるし。 |
68userさん ありがとうございます。 勉強します。 |
68userさん、ありがとうございます。 read関数の戻り値が-1だったのですが、errnoを刈り取っていなかったので、 実ははっきりとしたエラー原因がわかっていないのです。 今、そのエラーが出るマシンでのテストができない状況にあるので、確認する 事もできずにいます。 何か情報がつかめましたら、また質問させていただきたいと思っていますので、 よろしくお願いします。 |
>>2483 まい > read関数の戻り値が-1だったのですが、errnoを刈り取って > いなかったので、実ははっきりとしたエラー原因がわかって > いないのです。 そうですね。errno の値に加えて、再現性があるかどうかなども はっきりしないので、もうちょっと調べてみて下さい。 |
いつも、お世話になっています。質問があるんですが・・・ 「Solaris2.6」の環境で動画ファイル(.aviなど)をファイルに落とす 方法がありますか? 「spilt」をやってみても、膨大なファイルの量になってしまいます。 何か、良い方法があったら、教えてください。 |
(質問) テープ装置がない端末でテープ装置がある端末のテープ装置にマウントするにはどうしたらよいでしょうか? どなたか教えてください、よろしくお願いします。 なお、端末同士の、mountは一応出来ます。 |
いつもお世話になっています。質問です。 perlbug コマンドを使って Perl エンジンのバグを起票したのですが、 Connected to ???.???.???.??? but sender was rejected. Remote host said: ???.???.???.??? Your site is blacklisted as a spam haven. と言われて生成したメールが受け取られませんでした。 お前が使っているサーバーは spam の踏み台になるサイトとして ブラックリストされているので、メールを受信しないということのようですが、 http://www.ordb.org で調べてもどこにも使っているサーバーを発見できませんでした。 また、サーバーの管理者にも連絡を取りましたが(Microsoft Exchange です) そのようなクレームは見当がつかないと主張していました。 perl.com がどのような論理で上の拒否を行っているか知りたい、 できれば担当者にメールして聞きたいのですが、 どうすればいいかお分かりでしたらご教示ください。 |
いくら現在は大丈夫だと主張していても、過去にそんなことが あったのかもしれません。。 管理人に、不正中継をしないことをよーく確認してから、 削除要求を出すように言うしか方法はないと思うんだな。 どこかの不正中継リストに登録されちゃっているから拒否されるんだから、 perlbugやらのMLを探したら、どこを見ているかがわかるのかな・・ |
>>2485 yuusuke > 動画ファイル(.aviなど)をファイルに落とす方法がありますか? 「動画ファイルをファイルに落とす」ってどういう意味ですか? 「動画ファイル」というからには既にファイルになっていると思うのですが、 split が出てくるところを見ると「フロッピーディスクに落とす方法」を 知りたいのですか? >>2486 usr mount する必要はなくて、 http://www.wakhok.ac.jp/~maruyama/Super/section2.10.3.html じゃあないでしょうか。 >>2487 ふくし http://dbforums.com/archive/95/2001/08/1/116085 によると、perlbug@perl.org に手動で送ればよいのではないでしょうか。 http://archive.develooper.com/perl5-porters@perl.org/msg06972.html によると、 http://www.mail-abuse.org/ じゃないでしょうか。 # どちらもちゃんと英文を読んでいないので、違ったら失礼。 |
解答ではないですが。 >>2485 yuusukeさんの質問は、恐らくは動画から静止画を 抜き出したいということではないでしょうか。 |
>>2489すみません。その通りです。フロッピーに落とす方法を教えてください。 いろいろとご迷惑をお掛けしてすみません。(CZさんを含み) |
>>2491 yuusuke > フロッピーに落とす方法を教えてください。 ならば、split すればいいと思います。 「膨大なファイルの量」になってしまうのは、元ファイルが 大きければそれは仕方がないでしょう? 何に困っているのか まだわからないです。 |
はじめまして Hiroといいます。 Solaris2.6上に、JAVAサーブレットの環境を構築したいと思っています。 j2sdk-1_3_1_02_solsparc.sh を使ってインストールしました。 その結果 j2sdk1_3_1_02 というディレクトリが作成されインストールもできたようでした。 しかし、バージョンを確認するため java -version というコマンドを打ってみると javaversion"1.1.3" と返って来ます。 (javaversion"1.3.1"とかえってきてほしいのですが) おかしいと思いよく確認したところ、2.6のインストールディスクにデフォルトでJAVA(の古いバージョン)が入っていたようで、 /usr/java1.1/ というディレクトリに古いバージョンがインストールされていました。 こういう場合、今からでも古いバーションをアンインストールする方法というのはあるのでしょうか? |
↓すみません、よろしくお願いします |
>>2493 Hiro /usr/local/ で j2sdk-1_3_1_02-solsparc.sh を実行すれば /usr/local/j2sdk1_3_1_02/ ができますよね。で、 /usr/local/j2sdk1_3_1_02/bin/ に PATH を通せばよいです (/usr/bin/ より前に)。 しかし、今後新しい JVM と置き換えることを考えると、 - /usr/local/java -> /usr/local/j2sdk1_3_1_02 という symlink を張る。 - PATH には /usr/local/java/bin を通しておく。 - /usr/bin/java は /usr/java/bin/java への symlink で、/usr/java は /usr/java1.1 への symlink なので、誤って古いものが起動しないように /usr/java を削除。それでも心配なら /usr/java1.1 をリネームするか、 ばっさり削除。 がいいんじゃないでしょうか。 |
>>2495 68user 68userさん、ありがとうございます。 今、手元にSolarisがなく、夜にでも試してみたいと思います。 ところで、御回答いただいた内容からすると、ばっさり削除にひかれました(あまりスキルがないので、万が一誤動作したら自分で気づきづらいので・・)。 しかし、Solarisにおけるアンインストールの仕方というのは、わたしはよくわかっていません。アドバイスいただきましたように、/usr/java を削除し、/usr/java1.1をばっさり削除、というので、システムそのものへの影響というのはとくに考えなくともいいのでしょうか? すみません、UNIXはよくわかっておらず、とんちんかんな質問をしているかもしれません。 わたしはWindowsの感覚でしかわかっていないので、少し気になってしまいました。 |
>>2492 68userさんへ 実は、動画ファイルをWindowsのパソコンで見れるようにフロッピーに 落とそうとしたのですが、splitをして出来たファイルがかなりの数に なって、一つのフロッピーには収まりませんでした。こういう場合、ど うすればいいのか。また、フロッピーに落としたファイルをWindows上 でどのように結合すればいいでしょうか。まだ、UNIXの経験が浅い為、 いろいろと面倒を懸けてすみません。 |
] |
>>2497 yuusuke さん: はずしてたらすみません。 split というのはしらないんですけど、 lha かなんかで圧縮してから tar の -M オプションでマルチボリュームに分割して Windows 側で tar.exe(あるらしいです)で戻して lha かなんかで戻すという作戦はいかがでしょう〜 |
>>No. 2495 現状報告します。 まず、 /usr/java1.1 /usr/java の二つは、ざっくり削除しました。 その後、 /usr/local/java -> /usr/local/j2sdk1_3_1_02 という symlink を張ると同時に /usr/java -> /usr/local/j2sdk1_3_1_02 という symlink を張りました。 なのでパスは変更していません。 以上をしてからバージョンを確認したところ、きちんと1.3.1との表示がでました。 次にtomcatがちゃんと動くかどうか確認しようとしました。 そのためにhotjava(デフォルトで入っていたブラウザ)を立ち上げようとしたところ、これについては立ち上がらなくなっていました。 なので先ほどNetscapeをゲットしてインストールしようとしているところです。 以上、現段階のご報告まで。 もう少しすすんだらまたここでご報告します。 |
tarでbackupを採る時にtapeを2本目につずけて採る事はできないのでしょうか? |
>>2497 yuusuke > splitをして出来たファイルがかなりの数に > なって、一つのフロッピーには収まりませんでした。 ファイルサイズが問題なのではなく、ファイル数が多くなりすぎた のが問題なのですか? split -b 1400k などと、1ファイルごとのファイルサイズを指定 できますが、それは使いましたか? (1400k より小さくしないと フォーマット済 1.44MB FD には入らないかも) >>2500 Hiro > /usr/java1.1 > /usr/java > の二つは、ざっくり削除しました。 あら、消しちゃいましたか。念のため、/usr/java1.1.old などと リネームしといた方がよいかと思ったのですが、まぁ問題ないですかね。 Solaris2.6 標準の重要なプログラムで java を利用するアプリはない でしょうし。 うちの場合、1.3.1 のつもりで使っていた java コマンドが実は 1.2 だった (PATH の設定をミスっていた) という情けない失敗もあったりします。 ところで J2SE 1.4 リリースですね。 http://java.sun.com/j2se/1.4/ja/index.html Servlet 屋としては正規表現、XML、ロギング API あたりがよさげでしょうか。 まぁこれまでは Perl5Util や Log4j を使っていたのであまり変わりはない ですけど、なんにせよ標準になるというのはよいことです。 |
テスト |
↓ごめんなさい。間違えました。 話は変わりますが、いつも参考にさせていただいてます。 これからも参考にさせていただきます。 |
No. 2502 あのう、ざっくり消した件ですが、hotjavaが立ち上がらなくなったのが影響といえば影響です。 どういう関連でこうなっているのか正確な原因は理解できていません。 明日の夜にまたSolarisをいじる予定です。 |
>>2505 Hiro > どういう関連でこうなっているのか正確な原因は理解できていません。 HotJava は Java で書かれたブラウザで、実行するためには JDK (というか JRE) が必要だからです。起動できなくなったのは、 - JDK1.1 と J2SE 1.3 の仕様の違うから - 単に HotJava が (J2SE 1.3 の) java コマンドを見付けられないだけ のどちらかでしょう。 JDK1.1 を入れ直したかったらこちらから。 http://java.sun.com/products/jdk/1.1/ ただし、現在は 1.1 系列最新の 1.1.8 しか落とせないようです。 他のマシンか、インストール用 CD-ROM から java1.1 だけ 持ってくるのが早いかもしれません (CD-ROM から一部だけ 抜き出すことはできるのかな?)。 |
>>No. 2506 HotJavaが立ち上がらない理由はそういうことなのですか。 JDK1.1を入れなおすと、わたしはまたパスの設定で混乱してしまうかも しれないので、とりあえずはネットスケープを入れるよう努力してみます。 今晩Solarisをいじりますので、また明朝にでも報告します。 |
「ネットワークプログラミングの基礎知識」に「UDP を使ってみよう」を 追加しました。 http://X68000.startshop.co.jp/~68user/net/ |
ネットスケープですが・・ Some localized components (NetHelp, etc) can not be installed at this time. Re-run this script if you'd like to try again. というメッセージがでてインストールできませんでした。 ネットでいろいろ調べたところ、SunのEnglishサイトにバイナリ版 のネットスケープがあったので、ダウンロードしようとしたところ、 まず登録せよとでました。 で、登録して、ログインしようとしたら、できません(泣) それでさきほどSunのカスタマーへ問い合わせのメールを送ったところ です。ここまでで作業はとまっています。 また今晩いじる予定です。 しかし、なかなかすすまない。とほほ。 |
>>2509 Hiro Netscape Navigator/Communicator 4.79 は http://sunsite.sut.ac.jp/pub/archives/WWW/netscape/communicator/english/4.79/unix/supported/ から落とせます。Solaris 2.6 用はありませんが、2.5.1 用が そのまま使えるはず。 日本語化したければ、日本語リソースをこちらからどうぞ。 http://www.imasy.or.jp/~mistral/netscape/download.html 上記ページには > SunOS 5.5.1 用に はバージョンによっては直接 Netscape から > 日本語化キットも出ていますので、これ をそのまま使うことも > できます。 とありますが、見付けられませんでした。 |
>>2510 68user ありがとうございます。 日本語化の方は4.76が最新なんですね。 ということは英語の方も4.79じゃなくて4.76にしといたほうがいいのだろうか? pkgではないので苦戦しそうですが(苦笑)今晩トライしてみます。 |
結局、SunのEnglishサイトから紆余曲折の末ダウンロードすることが できました。まだインストールはできていませんが・・ 明後日の夜にまたいじる予定なのでその後また報告します。 |
わけあって他人が書いた MacPerl のスクリプトを 明日までに Unix で動かして結果をレポートしなければならないんですが、 ある入力データセットだとなんとなくうまくいくのに、 別の入力データセットだと Out of memory! になります。 スクリプトの中を一生懸命見る時間がちょっとありません、、。 こんな状態でも、スクリプトをいじるだけですむ Out of memory! の安直な回避法はひょっとしてあるでしょうか? FreeBSD 2.2.8-release Perl 5.6.0 です。 確かに仕事のやり方がまずいんですけど、 ちょっとあせっているのでご教示くださいお願いします、、。 |
>>2513 ふくし unlimit とか ulimit でメモリ制限を解除してみるとか。 それで無理なら、別バージョンの perl を使ってみて、 それでも無理なら地道にスクリプト修正します。僕の場合。 |