68user's page 掲示板

Prev< No. 2032〜2040> Next  [最新発言に戻る] [過去ログ一覧]
No. 2032 # snow [E-mail] 2001/06/20 (水) 13:31:30
はじめまして、C言語でFTPクライントを作ろうとここのページを参照させて
いただいたのですが、以下の部分のソースがよくわかりません。
  
  87: while (1){
  88: char c;
  89: c = getopt(argc, argv, "d");
  90: if ( c == -1 ) break;
  91: switch (c){
  92: case 'd':
  93: debug_flg = 1;
  94: argc--;
  95: argv++;
  96: break;
  97: default:
  98: break;
  99: }
100: }

getoptは調べたところint型だと思うのですが、なぜchar型の変数に値を
代入しているのでしょうか?
また、いろいろ調べてみたんですが、このgetoptで何をしているのかもよく
わかりませんでした。よろしければこの部分についての解説もお願いいたし
ます。m(_ _)m

No. 2033 # 68user 2001/06/20 (水) 14:07:33
>>2030 koni
そういう FTP サーバを使ったことがないので試すこともできないのですが、
これって APOP みたいな感じなんですかね? どこかで公開されている FTP
サーバはないものでしょうか。

>>2032 snow
> getoptは調べたところint型だと思うのですが、なぜchar型の変数に
> 値を代入しているのでしょうか?
これは僕のミスで、正しくは int です。直しておきます。

> このgetoptで何をしているのかもよくわかりませんでした。
引数解析です。
    for ( i=1 ; i<argc ; i++ ){
        if ( argv[i][0] == '-' ){
            switch (argv[i][1]){
                case 'd': debug_flg = 1; break;
            }
        }
    }
みたいなもんですが、自分で書くのもめんどくさいのでライブラリを
使いました。

詳しくはここらへんをどうぞ。
    http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=getopt&dir=jpman-3.1.0%2Fman&sect=3

No. 2034 # 68user 2001/06/20 (水) 14:19:27
>>2033 otp-md5
google 君に教えてもらいました。なるほど、こんな感じの流れになるのか。
    http://www.jaist.ac.jp/~uchida-t/otp/

No. 2035 # snow [E-mail] 2001/06/20 (水) 18:07:04
>>2033 68user

ご回答ありがとうございます。
ですが、このままint型に変えただけだと、エラーがなければCに入るのは
通常「100」ですよね?ということは
case 100: とすれば良いのですよね?
そこを修正して、先ほどのプログラムを例に従って実行してみたのですが、
どうもどこかでループにはまっているようで、ファイルの取得ができません。
う〜ん・・・(汗

No. 2036 # ED 2001/06/21 (木) 05:36:12
>68userさん
http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/view-segabbs.cgi.diff?r1=1.3&r2=1.1&f=h
ロボット検からまだ引っかかるので上記ページを確認したのですが
<head>の部分が</head>になっているのがちょっと変かなっと思ったのですが…どうなんでしょうか。

No. 2037 # 68user 2001/06/21 (木) 10:19:50
>>2035 snow
> エラーがなければCに入るのは通常「100」ですよね?
'd' の character code は 100 なので、100 でも 'd' でも動作は
同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。

> どうもどこかでループにはまっているようで、ファイルの取得ができません。
できる限り余分な部分を削ったソースを見せて下さい。

>>2036 ED
> <head>の部分が</head>になっているのがちょっと変かな
プログラムのソースでなく実物を見て下さい。
    http://X68000.startshop.co.jp/~68user/segabbs/bbs3/vol5/5_97.html

> ロボット検からまだ引っかかるので
META タグを追加してからまだ15日しか経過していません。例えば
google なら、クロール頻度は最低1ヵ月に1回だそうです。
    http://www.google.com/intl/ja/faq.html

No. 2038 # snow [E-mail] 2001/06/21 (木) 17:59:55
>>2037 68user

>> エラーがなければCに入るのは通常「100」ですよね?
>'d' の character code は 100 なので、100 でも 'd' でも動作は
>同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。

そうなんですか。すいません、'd'で大丈夫だとは知りませんでした。

>> どうもどこかでループにはまっているようで、ファイルの取得ができま
>>せん。
>できる限り余分な部分を削ったソースを見せて下さい。

いえ、前回のcの型の変更以外の変更は行っていません。
それでできないのですが・・・

No. 2039 # ED 2001/06/22 (金) 00:17:06
>68useさん
すいません。プログラムのほうしか見てませんでした。

No. 2040 # Moo [E-mail] 2001/06/22 (金) 11:56:36
    お礼です。
    「ネットワークプログラミングの基礎知識」を参考にさせて頂きました。
    とても分かりやすく私にとって大変役に立ちました。
    自分はDOSやWindowsのアプリ、ドライバを作ることが主な仕事ですが
この度、サーバ側のプログラムを作ることになり、こちらのHPを参考に
させていただきました。
    特に「ネットワークプログラミングの基礎知識」と「簡易版コマンド
マニュアル」内のcrontabを読ませていただき、大いに参考になりました。
    普段はC(ドライバ作成用)とDelphi(クライアント側アプリ作成用)
を使っていますが、こちらでPerlの使い方までも教えてもらいました。
    ただただお礼を言うばかりです。

    素晴らしいHPを提供してくださって、こころから感謝申し上げます。
    有り難うございました。

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