68user's page 掲示板

Prev< No. 415〜437> Next  [最新発言に戻る] [過去ログ一覧]
No. 415 # 鳶寺 1999/08/05 (木) 13:10
>すいません、知らないです。SVR4と言ってもいろいろありますから、
>全部調べるとなると大変でしょうね。
米国Sun社のサイトにありました。ご参考まで。
http://www.sun.com/smcc/solaris-migration/docs/transition-guide_2.5/apx_b.html

No. 416 # 初心者 1999/08/11 (水) 23:35
CGIのファイルをサーバにおいて
パーミッションを変更しようとすると、
下のように出て変更できません。

502 SITE command not implemented.

どなたか助言をお願いします。

No. 417 # がんじゃ@C修行中 1999/08/13 (金) 16:25
はじめまして、かんじゃと申します。
こちらのホームページで

「UNIXネットワークベストプログラミング入門」技術評論社
  
が紹介されています。 じつは小生もこの本のプログラムを
実行してみたのですが seg fault のメッセージが表示され
てうまく実行できません。

>文字列リテラルを書き換えており、 FreeBSDで
>実行するとコアダンプしてしまった(どちらもC
>言語中級者なら 自分で問題箇所を修正できるレベル)。

というコメントが書かれておりましたが、具体的にはどういった
ことが問題なのでしょう?

よろしければご教示、お願いします。

No. 418 # がんじゃ@C修行中 [E-mail] 1999/08/13 (金) 16:25
はじめまして、かんじゃと申します。
こちらのホームページで

「UNIXネットワークベストプログラミング入門」技術評論社
  
が紹介されています。 じつは小生もこの本のプログラムを
実行してみたのですが seg fault のメッセージが表示され
てうまく実行できません。

>文字列リテラルを書き換えており、 FreeBSDで
>実行するとコアダンプしてしまった(どちらもC
>言語中級者なら 自分で問題箇所を修正できるレベル)。

というコメントが書かれておりましたが、具体的にはどういった
ことが問題なのでしょう?

よろしければご教示、お願いします。

No. 419 # かんじゃ@C修行中 [E-mail] 1999/08/13 (金) 16:30
メールアドレスの記入ミスで同じ内容のものを2度書き込んで
しまいました。
申し訳ありません。

No. 420 # 68user 1999/08/13 (金) 19:55
> 502 SITE command not implemented.
FTPでのパーミッションの変更は、SITEコマンドを使用するんですが、
相手側のFTPサーバにはSITEコマンドが実装されていないので、
できない、ってことです。telnetでログインしてchmodするか、
管理者に頼んでまともなFTPサーバに置き換えてもらうしかないです。

> seg fault のメッセージが表示されてうまく実行できません。
現在、手元には その本もUNIX環境もないので、確かなことは
言えませんが、どこかで char *buf="abc" などと初期化して
いる部分があると思います。で、それを buf[0]='X' などと
変更していますが、そこで落ちるはずです。"abc" は文字列
リテラルなので変更することはできないから(変更できる
環境もありますが)。なので、char buf[]="abc" などと書き
換えれば動いたと思います。

*buf="abc" と buf[]="abc" の違いについては、ネット上に
落ちてる「C言語FAQ」に詳しく書いてあります。

No. 421 # かんじゃ@C修行中 [E-mail] 1999/08/16 (月) 10:35
>> seg fault のメッセージが表示されてうまく実行できません。
> 現在、手元には その本もUNIX環境もないので、確かなことは
> 言えませんが、どこかで char *buf="abc" などと初期化して
> いる部分があると思います。・・・以下省略

さっそくのご教示ありがとうございます。
以上参考にさせていただき、さらに修行していきます。

No. 422 # mm 1999/08/20 (金) 22:54
文字列リテラルは、昔のCでは、結構普通に書き換えたりしてたみたいです。
unixの古いccのライブラリでも、この書き換えをやっているという話を聞いたことがあります。
(聞いたのは、一時ファイルの名前を作るライブラリ関数だったような…)
ANSI C以前は、自動変数の場合には、配列の初期化ができなかったために、
便宜的に利用してたのかもしれません。それとも、スタックに文字列を確保しても、
これを関数の呼び出し元に返すことはできないので、mallocを使う代わりに
静的領域を利用してたのかな…にしても毎回同じ領域が使用されるので、
static にすれば済むことって気も…?

いずれにしても、ROM化やコンパイラが同じ文字列リテラルを共用させるために、
ANSI C以降は、文字列リテラルの変更は未定義とされたようです。

No. 423 # 68user 1999/08/27 (金) 06:31
> いずれにしても、ROM化やコンパイラが同じ文字列リテラルを共用させるために、
に加えて、複数プロセスでデータセグメントを共有させるため、
例えば ls を並行して2個実行した場合、スタックとヒープは
2個用意されるが、データセグメントは1個しか用意されない、
と思ってるんですが、全然違うかも。
# アセンブラやってないんで、ここらへん いまいち感覚的に理解できない。

No. 424 # mm 1999/08/28 (土) 01:31
>に加えて、複数プロセスでデータセグメントを共有させるため、
DOSが長いもので、マルチプロセスのメモリ管理はよく分からないです(苦笑)。

>例えば ls を並行して2個実行した場合、スタックとヒープは
>2個用意されるが、データセグメントは1個しか用意されない、
とすると、文字列リテラルだけでなく、静的な変数まで共有される
訳ですよね。
素人考えでは、ホントにそれで良いの?と思っちゃいます…
例えば、コマンドラインオプションで設定されるフラグが
グローバル変数だったりすると(あり得ますよね)、前後のlsの
オプション指定が異なる場合に、先のlsのフラグまで影響を
受けちゃうおそれがないのかなぁ…?

No. 425 # 68user 1999/08/28 (土) 07:40
すいません、よく考えずに適当なことを言ってしまいました(^^;
では、2個のlsで共有される領域は何だろう?

No. 426 # mm 1999/08/29 (日) 03:27
>では、2個のlsで共有される領域は何だろう?
うーん、unixのメモリ管理はよく知りませんです(苦笑)

No. 427 # すず [E-mail] 1999/09/10 (金) 14:11
ここすごいですねっ!内容がすごく充実しててびっくりしました。<BR>
分からないことがあったら来てみようと思います。<BR>
ところで質問です。<BR>
○○○.zip のようなファイルはどうやって解凍すればいいのでしょうか?<BR>
gzip -d とか uncompress も試してみたけど、やっぱりだめでした。<BR>
UNIXでは解凍できないんですか?

No. 428 # 68user 1999/09/10 (金) 20:03
> ここすごいですねっ!内容がすごく充実しててびっくりしました。
ども。ついさっき更新しましたのでよろしく。
    http://X68000.startshop.co.jp/~68user/unix/history.html

> ○○○.zip のようなファイルはどうやって解凍すればいいのでしょうか?
unzip、zipなどのコマンドがあります。unzip -l hoge.zip で一覧表示。
unzip -e hoge.zipで展開です。

No. 429 # ge 1999/09/13 (月) 11:53
私もここのファン(?)ですが掲示板の投稿は初めてです。早速ですが、UNIXのコマンドについて教えて下さい。

su - username
この時のハイフンはどんな意味を持つのでしょうか?

No. 430 # 68user 1999/09/13 (月) 14:07
FreeBSD の su ならば - は -l と同じです。
    マニュアル:
        http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&man=su&dir=jpman-3.2.0%2Fman
    ソース:
        http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/su/su.c?rev=1.29.2.2
多分他のUNIXでも同じだとは思うけど、確信はありません。

No. 431 # ge 1999/09/16 (木) 14:13
ありがとうございます。
ご教示の通り、 - と -l は同じでした。

No. 432 # tetsuya 1999/09/20 (月) 05:45
WindowsでFTPサーバのソフトを作成したいのですが、
よくわかりません。UNIXの場合は拝見させて頂いたのですが
winの場合はちょっと違うみたいでして・・・。
宜しければレスお願い致します。

No. 433 # 68user 1999/09/20 (月) 15:50
すいません、Windows環境は持ってない&使ってないので
わかりませんです。

# FTPクライアントではなくて、「FTPサーバのソフト」なんですか?
# いわゆる ftpd を作成されるのですか?

No. 434 # tetsuya 1999/09/20 (月) 19:27
>FTPクライアントではなくて、「FTPサーバのソフト」なんですか?
>いわゆる ftpd を作成されるのですか?
はい、ftpdです。1ヶ月ほど前より悩んでおります。
RFC日本語版やら、winsock本を読んでいるのですが、
どうしてもFTPportが開いてくれないのです。
>すいません、Windows環境は持ってない&使ってないので
>わかりませんです。
いえいえ。私もわからなかったので、ご存知かと思いまして
質問しました。有難う御座いました。また悩み続けます(^^;)。

No. 435 # 68user 1999/09/20 (月) 19:31
echoサーバのような単純なサーバではうまくいってるんでしょうか?
まずはそういう簡単なサーバを作りながら winsock を理解しては
どうでしょう。
# winsockを知らない人間が言う言葉ではないな(^^;
## 既にやっておられたらすいません。

No. 436 # tetsuya 1999/09/21 (火) 04:21
>## 既にやっておられたらすいません。
全くやってなかったですが、今、ソースは見つけました。
http://www.macnica.co.jp/soft/prog/win_echo.txt
こういうので良いのでしょうか?

>まずはそういう簡単なサーバを作りながら winsock を理解しては
>どうでしょう。
了解しました。echoサーバっていうのは、サーバーにあるMSGを
送るとそのMSGを送り返してくる機能を持ったものみたいですね。
調べてみました。ちょっとソースを理解してみます。
有難う御座いました。

No. 437 # 68user 1999/09/22 (水) 00:03
> こういうので良いのでしょうか?
そういうのです。

それで Winsock 上での socket・bind・listen・accept を覚えてから、
ftpd を作る、と。最初からコネクション2本な ftpd にチャレンジする
よりは簡単だと思います。

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