68user's page 掲示板

Prev< No. 1881〜1920> Next  [最新発言に戻る] [過去ログ一覧]
No. 1881 # akihiro 2001/04/06 (金) 11:50:53
ご存知であれば 教えてください
psコマンド(ps -l)を実行したときの C 項目の数値の意味
なんですけどマイナス値のプロセスがあったのですが
どのような状態を意味するのでしょうか?

No. 1882 # クワ [E-mail] 2001/04/08 (日) 17:27:09
教えていただきたいことがあります。
UNIXについてはほとんど初心者なのですが、あるとき急に管理をしろ!
と言われてしまいました。はじめはなんのトラブルもなかったのですが、
何日か前に急に他のマシンから自マシンへtelnet接続ができなくなって
しまいました。
    原因はなんなのでしょう?
機種は
  SUN ULTRA60 Solaris2.6が入ってます。もちろん自マシンにログイン後
自マシンの他のユーザへのtelnetでのログインもできないのです。
お願いします。

No. 1883 # YOUKO 2001/04/08 (日) 17:51:12
はじめまして、YOUKOと申します。
C-ISAMを使ってAPLを作成したいのですが
初めてで右も左もわかりません。
どこか初心者用のHPありませんか?
OS:Solaris7です。

No. 1884 # 68user 2001/04/08 (日) 23:29:37
>>1881 akihiro
> psコマンド(ps -l)を実行したときの C 項目の数値の意味
> なんですけどマイナス値のプロセスがあったのですが
OS は何ですか? FreeBSD には C という項目はないように
思えます。Solaris2.6 では「スケジューリングのための
プロセッサ利用率、ただし obsolete」と man に書いて
あったような気がしますが、それ以上の事はわかりません。

>>1882 クワ
> 何日か前に急に他のマシンから自マシンへtelnet接続が
> できなくなってしまいました。もちろん自マシンにログイン後
> 自マシンの他のユーザへのtelnetでのログインもできないのです。
それは、問題のマシンで
    % telnet localhost
でログインできないということですね?

全体的に情報が不足しています。「できない」とはどういう意味ですか?
何かエラーメッセージが出ますか? 何秒か待たされたりしますか?
login: プロンプトは出ますか?

一般的には inetd が telnet ポートを見張り、接続があると inetd が
telnetd を実行し、telnetd が認証を行います。もし
    % netstat -a | grep telnet
    tcp4 0 0 *.telnet *.* LISTEN
という出力が出ないならば、telnet ポートを監視するサーバがいない
ということなので、inetd の問題です。/etc/inetd.conf をチェック
しましょう。

他にも tcpwrapper が接続を弾いている、などの可能性もありますが、
そこらへんは /var/log/ の下のログを見ましょう。telnet した後、
ls -lt /var/log すれば、最終更新時刻順にファイル一覧が表示
されますので、最も最近に更新されたログファイルの中を見れば
何かメッセージが書いてあるかもしれません。

>>1883 YOUKO
> C-ISAMを使ってAPLを作成したいのですが
C-ISAM という物を知らないのですが、Informix の DB 関係の
ライブラリか何かでしょうか。そういうものは Informix の出して
いるマニュアルを読むのが早道かと思います。

# 同様に、個人が提供している Oracle の情報も少ないですね。

No. 1885 # akihiro 2001/04/09 (月) 09:14:41
>> psコマンド(ps -l)を実行したときの C 項目の数値の意味
>> なんですけどマイナス値のプロセスがあったのですが
>OS は何ですか? ..(略)..、それ以上の事はわかりません。
HP-UNIXです。私なりに調査していますので解りましたら
載せさせていただきます。

No. 1886 # chie 2001/04/09 (月) 15:02:13
排他処理のページを見て質問なのですが、シグナル処理でCGIを終了
させたくない場合はどうすればよいのでしょうか?
シグナルを無視みたいなことはできないんでしょうかね??

よろしくお願いします。

No. 1887 # 68user 2001/04/09 (月) 18:59:22
>>1886 chie
> シグナルを無視みたいなことはできないんでしょうかね??
perl なら
    $SIG{QUIT} = 'IGNORE';
などとすれば無視できます。ただし、SIGKILL と SIGSTOP
だけは無視できません (ハンドラの設定も不可)。

No. 1888 # dio [E-mail] 2001/04/10 (火) 17:15:22
>ただし、SIGKILL と SIGSTOP
>だけは無視できません (ハンドラの設定も不可)。
横からすみませんが、無視できずハンドラの設定不可な
シグナルは、どのような意味があるのでしょうか?
(なぜ送られてくるのでしょうか?)

No. 1889 # 68user 2001/04/10 (火) 22:28:55
>>1888 dio
> 無視できずハンドラの設定不可なシグナルは、
> どのような意味があるのでしょうか?
シグナルをブロックしたプログラムが誤って無限ループしてしまったら
止める術がなくなります。

なので、プロセス側から制御できない SIGKILL や SIGSTOP という
シグナルを飛ばすことで、OS に強制的にプロセスを殺したり、動作を
止めたりするわけです。例をあげると、
    #!/usr/bin/perl
    $SIG{TERM} = sub { print "TERM!\n" }; # kill コマンド対策
    $SIG{INT} = sub { print "INT!\n" }; # Ctrl-C 対策
    while (1){
            printf("%d\n", $i++);
            sleep 1;
    }
というプログラムを実行すると、Ctrl-C や kill プロセス番号 で
終了させることはできません。しかし Ctrl-Z で動作を止めたり、
kill -9 (=kill -KILL) でプロセスを殺すことはできます。

# 実際は他にもシグナルはありますので、kill -HUP などで
# 殺すことが可能ですが、全てプログラム側でブロック可能です。

なお、SIGINT や SIGTERM を受けると、ファイルなどの後始末を
行ってから終了するプログラムは多いです。なので、いきなり
SIGKILL で強制終了させるのはおすすめできません。まず SIGTERM や
SIGINT を試して、それでも死ななければ SIGKILL を使うように
して下さい。

No. 1890 # dio [E-mail] 2001/04/11 (水) 14:45:02
えーと、私は何か勘違いをしていたかもしれません;

>なので、プロセス側から制御できない SIGKILL や SIGSTOP という
>シグナルを飛ばすことで、OS に強制的にプロセスを殺したり、動作を
>止めたりするわけです。
これはわかります。SIGKILL、SIGSTOPの必要性はわかるのですが、
プロセスから制御できない物をなぜシグナルとして送る
必要があるのだろうかと思ったのです。
私はOSがプロセスにSIGKILL や SIGSTOPをとりあえず送って、
強制終了させる物と思っていたのですが、この考えが方が間違いでしょうか?

No. 1891 # 68user 2001/04/11 (水) 23:42:45
>>1890 dio
ん〜、SIGKILL, SIGSTOP の必要性はわかるが、ブロックできないんだから
「シグナル」として扱うのは変ではないか。SIGKILL, SIGSTOP と同等の
機能を持たせたシステムコールを新設した方がよいのではないか、という
ことでしょうか?

じゃなくて、OS が SIGKILL や SIGSTOP を送るのはわかるが、
コマンドラインで kill コマンドを使って SIGKILL, SIGSTOP を
送れるのは変ではないか、ということですか?

No. 1892 # dio [E-mail] 2001/04/12 (木) 14:09:56
前者のほうにちかいです
プロセスを殺すのはOSなのですよね?
プロセスにSIGKILLやSIGSTOPが送られても
プロセスはそれに対して何も出来ないのなら、
なぜ送られてくるのかな?と。
プロセスはSIGKILLやSIGSTOPを認識出来ないのではないのですか?

No. 1893 # 68user 2001/04/12 (木) 14:47:46
>>1892 dio
> プロセスはSIGKILLやSIGSTOPを認識出来ないのではないのですか?
できないです。

OS はプロセスごとにシグナルのテーブルを保持しています。例えば
SIGTERM を無視する場合はテーブルの SIGTERM の項目を 1 に、
シグナルハンドラをセットする場合は、SIGTERM の項目にシグナル
ハンドラ (関数) のアドレスをセットする、というふうに。

で、シグナルが飛んできたら、OS は対象のプロセスのテーブルを
参照し、無視すべきか、ハンドラを実行すべきかなどを決めます。

しかし SIGKILL/SIGSTOP は、
    - テーブルの書き換えができない
    - シグナル発生時に OS がテーブルを参照することなくプロセスを操作する
のどちらかの理由のため (どっちが本当かは知りません)、プロセス
からブロックすることはできません。


だから、実際に OS が何かをプロセスに送っているわけではありません。

…で、回答になりましたか?

ちなみにシグナルは FreeBSD なら ここらへんで処理してます。
    http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/sys/kern/kern_sig.c?rev=1.115

No. 1894 # dio [E-mail] 2001/04/12 (木) 21:11:57
>で、シグナルが飛んできたら、OS は対象のプロセスのテーブルを
>参照し、無視すべきか、ハンドラを実行すべきかなどを決めます。
なるほど、シグナルを受け取るのはOSなんですか。

>だから、実際に OS が何かをプロセスに送っているわけではありません。
そうでしたか。
私の考え方がWindows的でした。
(WindowsのMessageのような物と考えてました;)

>…で、回答になりましたか?
はい、どうもありがとうございました。

No. 1895 # クワ [E-mail] 2001/04/14 (土) 18:24:57
>>1884 68user
>それは、問題のマシンで
> % telnet localhost
>でログインできないということですね?
お返事が遅くなってしまいました。すみません。
上記のように入力すると、
SunOS5.6
....(省略)普通といっしょ。

connection closed by foreign host.
といわれます。
UNIXの相当詳しい人に見てもらったのですが、ぜんぜんおかしい
部分がないとのことでした。

来週OSをインストールしなおすとその方がおっしゃっておりました。
ご迷惑をおかけしました。
また分からないことがありましたらよろしくお願いします。

No. 1896 # りんたろお。 [E-mail] 2001/04/17 (火) 19:42:34
初めまして。

現在文字コードの変換について色々と模索中です。で、
このページの過去ログを見つけたのですが、情報を
うまく理解することができなかったので質問させて
ください。

まずバックグラウンドとして、Solaris2.6のWebサーバを
今まで他の人が管理してきたものの引継ぎで管理する事
になったのですが、そのWebサーバは文字の変換に
/bin/iconvを利用しています。htmlファイルはeucJPで
かかれていました。さらにソースの中でMETAタグに
「charset=x-euc-jp」という記述がありました。
またユーザからの情報をCGIからOracle(Solaris2.6上)に
データを格納しています。この際CGIではeucからUTF-8に
変換を行なう記述がなされています。

# DBは個人的に触ることができない状態です。Solaris2.6
# の/bin/iconvを利用するところも変えられません。

通常インターネットを意識した時にはWindows環境(もち
ろんこの中にも色々ありますが)だけを意識するのではなく、
色々な環境を意識してhtmlファイルを書くべきなのだと
思うのです(私見?)。

前置きが長くなりましたが質問です。

1.ソースの中でMETAタグに「charset=x-euc-jp」という
記述がある場合、ブラウザのエンコードで「自動認識」を
指定していれば、ソースは読める状態で表示され、かつ
フォームに入力した文字列はeucJPでWebサーバに送信されて
くるものだと信じているのですが正しいのでしょうか。

2.また正しい場合、表示を強引にSJISなどにしてフォーム
に入力した場合にはeucJPで送られてくるのでしょうか。
それともSJISなのでしょうか。(まだ環境を自由にできない
ので自分では確認できません。)

3.半角が入力されてきた場合にはどのように対処すれば
いいのでしょうか。

4.JIS X 0208の13区、89〜92区、115区〜119区(換算)の
文字を入力するとエラーで返すようにしたいのですが、CGI
でどのように記述すればいいのでしょうか。EUCコードで
ADA1〜ADFE、F9A1〜F9FE、FAA1〜FAFE、FBA1〜FBFE、FCA1〜
FCFE(全て16進数) は不可、のように文字コードそのもので
制限をかけるのでしょうか。Perlでこういった内容を書き
たいのですが、何か参考になるようなものがありましたら
お知らせください。

長い文章になりましたが、ご助力お願いいたします。

No. 1897 # 68user 2001/04/17 (火) 22:15:45
>>1896 りんたろお。
> 色々な環境を意識してhtmlファイルを書くべきなのだと
> 思うのです(私見?)。
このような考えの人が多ければ、UNIX 使いのような
マイノリティはもっと幸せになれるのですが、なかなか
そうもいかないようで…。

> 1 エンコーディング指定
x-euc-jp というのは、まだ EUC-JP というエンコーディング名が
IANA に登録されていなかった頃の暫定エンコーディング名ですので、
現在は EUC-JP とするのが適当です。

ただし、Netscape Navigator 3.x などの古いブラウザでは EUC-JP を
認識できないという問題がありますが、「新しめのブラウザを使え」と
言えるような立場なら EUC-JP にする方がよろしいです。

なお、META でなく、CGI プログラムが出力するヘッダで
    Content-type: text/html; charset=EUC-JP
とした方がよいです。META は、ヘッダにエンコーディングを
明示できない場合の代替手段ですので。

ただし、ブラウザは間抜けなので、エンコーディングを明示しても
自動認識に失敗することはあります。

> 2 フォームのエンコーディング
基本的に、フォームのあるページのエンコーディングで
フォームのデータが送られてきます。少なくとも Netscape
Navigator と Internet Explorer はEUC-JP なページの
フォームで入力すると、入力内容を EUC-JP で送ります。

ただし、規格として決まっているわけではありませんので、
そうでないブラウザもあります (Lynx がそうかな)。

なので、入力データは jcode.pl などで EUC-JP や Shift_JIS に
変換するのがよいでしょう。1行追加するだけなので、たいした
手間ではないです。

> 3 半角入力
これは、半角カナということですか? なら 4 へ。

> 4 機種依存文字
    http://X68000.startshop.co.jp/~68user/webcgi/char-code-2.html
が参考になるかと思います。この掲示板では機種依存文字を自動変換
していますが、「機種依存文字があればエラー」とするのは簡単です。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi
の、sub conv_wrong_char あたりをどうぞ。

No. 1898 # ふくし [E-mail] 2001/04/19 (木) 05:56:45
ずっと以前から悩んでいたことなのですが、どこで聞いていいかわからず、
ここで書きます。よろしくお願いします。

会社の FreeBSD で Perl を使っていますが、nfs mount でいろんな
マシンで同じスクリプトを使えるようになっていますが、
あるスクリプトが急に text file busy と言われます。

語感からするとエディット中に実行したとか、
複数の人が一つのスクリプトを実行しているとか
いう感じですが、そうなっていても実行できるスクリプトは
実行できますし、どう考えてもヒマなファイルが同様の原因で
怒られます。

で、こうなってしまったら、件のスクリプトのディレクトリに行き
% cp busyscript foo
% rm busyscript
% mv foo busyscript
% chmod 755 busyscript
これで百発百中修復します。

なぜなんでしょう。どなたかご教示をお願いします。

No. 1899 # kate [E-mail] 2001/04/19 (木) 10:54:26
つい最近、perlを勉強しはじめた者です。本に掲載されているごく
簡単な例を実際サーバにUPして試しているのですが、
エラーメッセージが出てしまい、困り果てています。
よろしければ、アドバイスをお願い致します。

#!/usr/local/bin/perl5
print "what is your name?";
$name = <STDIN>;
chomp($name) ;
If ($name eq "kate") {
    print "Hello,kate! How good of you to be here!\n";
} else {
    print "Hello, $name\n";
}

以上です。
エラーメッセージは
syntax error at test.cgi line 7, near "}"
Execution of test.cgi aborted due to compilati
on errors.
です。

No. 1900 # りんたろお。 2001/04/19 (木) 12:07:11
>>1899 kate
(あれ、使い方がわからない…。(>_<))
kateさんのPerlの質問ですが、5行目の「If」を「if」にすると
できますよ。あとついでなのですが、
            "what is your name?\n";
とすると良いですね!(^^ゞ

No. 1901 # りんたろお。 2001/04/19 (木) 12:09:00
>>1897 68user
ありがとうございます。これから試してみますので、結果が出たらまた
ご報告いたします。→みなさま。

No. 1902 # kate 2001/04/19 (木) 18:36:27
1900
りんたろお。さんありがとうございました。
ケアレスミスというか、本当にしょうもないミスだったの
ですね・・(^-^;
アドバイスありがとうございました!また、ヨロシクお願いします。

No. 1903 # しの 2001/04/21 (土) 04:29:07
はじめまして。
Perlのネットワークプログラムについての質問なのですが、

あるサーバからあるサーバへデータをそのまま送るだけなのですが、
        while (<$sock_recv>){
                print $sock_send $_;
        }
このときに受信側がユーザー操作によって受信をキャンセルされると、
>Can't use an undefined value as a symbol reference at ./test.pl line 46, <CLIENT> chunk 8322.
と、エラーが出てプログラムが強制終了してしまいます。
強制終了せずに、受信側の受信キャンセルを検出する方法がありましたら
是非おしえてください。よろしくお願いします。

No. 1904 # くみ [E-mail] 2001/04/22 (日) 00:43:44
sendmaiを使用して2カ所にメールを送るにはどうすれば良いのでしょうか?
open 〜 close を2度記述してもダメなのでしょうか。1度の記述だと正常に処理できるのですが2度の記述ですとうまくいきません。宜しくお願い致します、

open(MAIL, "| /usr/sbin/sendmail -t");
        ・〜・
close(MAIL);

No. 1905 # 68user 2001/04/22 (日) 01:39:33
>>1898 ふくし
samba を使っていませんか? よく知りませんが samba はファイルを
読み込み禁止でロックしっぱなし (?) にするようで、そのとき
ファイルを読もうとすると「Text file busy」となります。もし
そうなら http://www.samba.gr.jp で検索すると解決策が見つかると
思います。

もし NFS しか使っていないなら、解決策はわかりません。

>>1903 しの
print したデータを受け取る先のプロセスがいないと、print した
側には SIGPIPE が飛んできます。シグナルハンドラを設定して、
適切なエラー処理を行いましょう。

>>1904 くみ
> open 〜 close を2度記述してもダメなのでしょうか。
それでもよいですし、2箇所に送ったことが相手先に知られても
いいなら、
    print MAIL "To: foo@hoge, bar@fuga\n";
でもいいです。

No. 1906 # 68user 2001/04/22 (日) 04:05:42
「ネットワークプログラミングの基礎知識」
    http://X68000.startshop.co.jp/~68user/net/
を CVS に追加しました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/

$Id:$ を挿入しまくったので、もしソースと解説の行番号がずれて
いるかもしれません。見つけられた方はご指摘いただけると幸いです。

No. 1907 # くみ 2001/04/22 (日) 18:57:46
2カ所への送信はうまくいきました、有り難う御座いました。
ところが
またまたしつもんです。sendmailで指定する件名が送信先によって文字化けしてしまいます。日本語文字コードによるものでしょうが、対策は具体的にどのようにしたらよいのでしょうか。
$sb='あいうえお';
print MAIL "Subject: $sb\n";

No. 1908 # 68user 2001/04/22 (日) 19:28:28
>>1907 くみ
MIME encode する必要があります。
    http://X68000.startshop.co.jp/~68user/webcgi/mail-2.html#2
をどうぞ。

No. 1909 # hooma [E-mail] 2001/04/22 (日) 21:16:18
はじめまして

CGIを学んで1ヶ月の者です。
実は、仕事で少し面倒な依頼を受けて困っております。
内容はCSV形式のデータをPerlで読み取ってそれを
HTMLのテーブルに流し込むスクリプトなのですが、
慣れていないので思考停止をして進みません。

具体的なCSVデータの例ですが、

10,果物,りんご,ringo.html,ぶどう,budou.html,ばなな,banana.html,10,野菜,かぼちゃ,kabotya.html,なす,nasu.html,きゅうり,kyuri.html,魚,まぐろ,maguro.html,さけ,sake.html,10,肉,牛,usi.html,麺,ラーメン,ra-men.html,そば,soba.html,うどん,udon.html

まず、先頭に10があり、これは分類の区切りを示すヘッダーです。
次に果物でこれは、分類名です。
次にりんご、これは分類詳細名です。
つぎにringo.htmlでこれは分類詳細名のリンク先アドレスです。

このようなデータの並びですが、各分類と詳細項目は変動しますので
このテーブルのあるWEBページを毎回読み直す必要があります。

どうのようにしたらよいのでしょうか。
お助けください。

No. 1910 # 68user 2001/04/23 (月) 08:52:15
>>1909 hooma
どういう HTML を出力したいかが書いてないので、誰にも
正解は答えられないと思いますよ。CSV から読み込むだけなら、
「,」で split して、「10」が出てきたら新しいを配列を用意し、
次の「10」が出てくるまでその配列に push。そしたら1つの配列には
    「ヘッダ,分類名,分類詳細名1,リンク先1,分類詳細名2,リンク先2...」
という値が入るでしょうから、後は適当に処理すればよいでしょう。

No. 1911 # HELP [E-mail] 2001/04/25 (水) 13:40:30
fgetsとsscanfの使いかたがまったくわかりません。
誰か教えて下さい。
下のような問題をといています。
誰でもいいのでできれば解いてもらえませんか??

問題
1.ユーザーに1つの数の入力を求め、入力された数字を8進数表示、16進数表示するプログラムを作りなさい。

条件:main関数1つで作成する。
            gets(),scanf()は利用しないこと。
            扱う数字のさいだいは、int型で良い。
            printf()は用いてもよい。

No. 1912 # 68user 2001/04/25 (水) 15:42:38
>>1911 HELP
宿題なのでしょうから、自分でやりましょう。

「ここまで自分でやりましたが、〜がわかりません」なら
ともかく、「全くわかりません」では問題外です。

# 2ch に行けば、お姉さんやギコ猫が答えてくれますけどね。

No. 1913 # HELP [E-mail] 2001/04/25 (水) 23:27:14
確かに宿題みたいなものなんですが、ほんとに全然さっぱりなんです。
fgetsとsscanfがどういうものなのかだけでも教えてもらえませんか?
参考書など読んだのですが、どのように使えばいいのかわからないんです。
問題のプログラムは一応できたんですが、あっているのかもわからないし、
自分で作ったプログラムなのに理解できないんです^^;
誰かお願いしますm(_ _)m

No. 1914 # 68user 2001/04/26 (木) 18:51:33
>>1913 HELP
では、自分の書いたプログラムを見せて、「こことここがわからん」
「ここは、こういう意味だろうか?」と質問してみてはどうでしょうか。

課題のプログラムについて、知るべきポイントや勉強すべきポイントは
たくさんあります。だから世の中にはたくさん C の参考書が出回って
いる。それら全てを回答者に解説させようとせず、自分がどこまで
理解しているかを明らかにした上で、ポイントをしぼって質問する
のが「うまい質問の仕方」というものです。

No. 1915 # HELP 2001/04/27 (金) 01:07:37
次の問題のプログラムを作ってみましたが、コンパイルできません。
どこが間違っているのか教えて下さい。

入力された数字を2進数表示するプログラムを作成しなさい。
条件:main関数、2進数の文字列を返す関数の2つの関数で作成する。
            扱う数の最大は、int型でよい。

#include <stdio.h>

int sinnkeisann(int k);

main ()
{
    char buff[32+1];
    int k ,kotae;

    printf("整数値を入力して下さい>>>");
    fgets(buff,sizeof(buff),stdin);
    sscanf(buff,"%d",&k);
    
    kotae = sinnkeisann( k );
        
        printf("2進数表記>>>%d",kotae);

}

int sinnkeisann(int k)
{
    int a,i,answer;
    char retu[32+1];

    a=k;
        retu[32] = '\0';
    
    for(i = 0; i < 32; i++){
        if(i != 0 && a == 0){
            break;
        }

        if(a %2 == 0){
            retu[(32-1) - i] = '0';
        }
        else{
            retu[(32-1) - i] = '1';
        }
        a = a / 2 ;
    }
    answer = retu[0]+(32-1)-i+1 ;

    return answer ;
    
}
    

No. 1916 # 68user 2001/04/27 (金) 03:38:19
>>1915 HELP
FreeBSD 4.2-RELEASE ではコンパイルできましたよ。コンパイル
できない場合は、どういうエラーメッセージが出たかを書きましょう。

ところで、条件では「文字列を返す関数」となっているので、
    char *sinnkeisann(int k)
とすべきですね。

ただし、インデントだけはきっちりつけましょう。そのソースを
見る他人のためでもあり、3日後にソースを見直すかもしれない
自分のためでもあります。

No. 1917 # すな 2001/04/27 (金) 05:25:31
元質問
>>1861 すな
>>1870 で hsjさんに教えてもらった件ですがやはりそのようですね。
http://homepage1.nifty.com/yito/namazu/gbook/20010423.0840.html
といった記事を見つけました。よって、
>>1864 でのレンタルホスト管理者からのメールで
>クライアントがURL欄に「http://www.intel.com/http://www.intel.com/
> と誤って記入すると、そのようなログが記録されます。
はやはり間違いですね。

参考までに…(参考にもならないかな?)
# しかし最近不正な(と思われる)アクセス増えたなぁ…

No. 1918 # 紅の猫 [E-mail] 2001/04/27 (金) 19:24:05
>>1915HELP
文法的には間違ってないし、アルゴリズムも基本的には正しいです。(だけどね(^_^)ニヤリ
あとはintの符号有り、符号無しの違いに注意したほうがいいです。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1919 # HELP 2001/04/27 (金) 22:04:17
プログラムを以下の様に直してみました。しかしコンパイルができません。

#include <stdio.h>

char *sinnkeisann(int k);

main ()
{
    char buff[32+1];
    int k ,kotae;
    
    printf("整数値を入力して下さい>>>");
    fgets(buff,sizeof(buff),stdin);
    sscanf(buff,"%d",&k);
    
    kotae = *sinnkeisann( k );
    
    printf("2進数表記>>>%d",kotae);
    
}

char *sinnkeisann(int k)
{
    int a,i,answer;
    char retu[32+1];
    
    a=k;
    retu[32] = '\0';
    
    for(i = 0; i < 32; i++){
        if(i != 0 && a == 0){
            break;
        }
        
        if(a %2 == 0){
            retu[(32-1) - i] = '0';
        }
        else{
            retu[(32-1) - i] = '1';
        }
        a = a / 2 ;
    }
    answer = &retu[0]+1 ;
    
    return answer ;
    
}

エラーメッセージ
2sinn.c: In function `sinnkeisann':
2sinn.c:46: warning: assignment makes integer from pointer without a cast
2sinn.c:48: warning: return makes pointer from integer without a cast

No. 1920 # 紅の猫 [E-mail] 2001/04/28 (土) 10:00:44
>>1919HELP

answerがint型なのにchar型を渡してるって事ですね。

答えの返し方は、関数を
void function(int n,char* s)
というように、返してほしい配列のポインタを引数にすればいいですよ。

Prev< No. 1881〜1920> Next  [最新発言に戻る] [過去ログ一覧]