UNIXで、CよりOracleのSQL*Loaderを使用しています。
CSVファイル->Oracleのテーブル
でデータを挿入する際に、テーブルのカラムサイズが
足りずにエラーが発生し、最大エラー件数を超えたので
処理がエラーで終了しました。

その際に、
セグメンテーション・フォールト(coredump)
というメッセージが表示されます。

ついでに補足するならば、Cのプログラムを直接起動すると、
上記エラーメッセージ出力後、プロセスは終了しますが、
別プログラムより起動した場合(UID=root)、
プロセスが終了してくれません。

上記メッセージの意味と、なぜrootからだと
プロセスが終了しないのか、が分かりません。
どなたかお分かりになる方、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

セグメンテーション・フォールトは、プログラムが、アクセスを禁止されて


いるメモリー領域にアクセスしようとしたということです。大抵はプログラムの
バグです。
coredumpは、OSがその時のメモリーの状態をcoreというファイルに保存した
ということです。
UIDがrootの場合にプロセスが終了しない理由は、はっきりとはわかりませんが、
上記のことを考えれば、root権限ならばアクセスできるところにアクセスして
いるのかもしれません。とすると、プロセスが終了しないのは、結構危険な
状態なのかもしれません。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!
プログラムを調べたところ、ご指摘の通り、バグがありました。
修正後は正常に動いています。
プロセスが終了できなかったのも、おそらくranxさんの
予想通りではないかと思われます。

大変助かりました。どうもありがとうございます。

お礼日時:2001/09/05 19:26

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLinuxサーバーrootからのメッセージ

いつもお世話になっています。

Turbo Linux Server 6.1Jから、ftp版のTurbo Linux Server 6.5にアップグレードしました。

昨日、INSからADSL固定IPサービスへ移行して、各種のサーバーを立ち上げて、rootからのメッセージをクライアントPCから受け取りました。
その中に、下記のエラーが毎時間、1件以上出ているのですが、これはどのような意味で、修正する方法があれば是非教えてくださいお願いします。

Dec 5 12:01:00 xx CROND[2361]: (root) CMD (run-parts /etc/cron.hourly)
        :
Dec 5 11:01:59 xx ipop3d[2246]: Mailbox vulnerable - directory /var/spool/mail must have 1777 protection

Aベストアンサー

No.2 の回答に補足を。

ranx> このディレクトリはメールの保管場所だと思います。
ranx> そのアクセス権を1777にしてしまっては、誰でもアクセス
ranx> できることになってしまい、かえって危険です。

/var/spool/mail は、メールボックスファイルが置かれるディレクトリです。
だから、メールを扱うプログラムがアクセスできるようにアクセス権限をつける
のが普通です。

制限をかけるのは、このディレクトリに配置されるメールボックスに対して、です。
/var/spool/mail の下を見てみると分かると思いますが、メールボックスがそれぞれ
所有者とグループに読み書きの権限がついていて、グループが mail になっている
はずです。

で、ディレクトリのモードが 777 ではなく 1777 になっているのがミソなん
です(スティッキィビットといいます)。

メールを扱うプログラムが本人か root だけだと、バックで動くプログラムを
全て root 権限で動作させることになってしまいます。そのセキュリティホールを
つかれると、root 権限をのっとられてしまうので、できるだけプログラムは
root 権限で動かさない方が良いんです。

ディレクトリにスティッキィビットがついていると、そのディレクトリ配下の
ファイルは root じゃなくても、ファイルの所有者・ディレクトリの所有者・書き込み
可能の *どれかの* 条件を満たしていると更新ができます。

そうすることで、メールを扱うプログラムを root 以外の権限で動かすことができ、
最悪、権限をのっとられても、たいした悪さができないようにリスクを軽減すること
ができます。

No.2 の回答に補足を。

ranx> このディレクトリはメールの保管場所だと思います。
ranx> そのアクセス権を1777にしてしまっては、誰でもアクセス
ranx> できることになってしまい、かえって危険です。

/var/spool/mail は、メールボックスファイルが置かれるディレクトリです。
だから、メールを扱うプログラムがアクセスできるようにアクセス権限をつける
のが普通です。

制限をかけるのは、このディレクトリに配置されるメールボックスに対して、です。
/var/spool/mail の下を見てみると分かる...続きを読む

QファイルアクセスしたUIDの履歴を取りたい

OSはSolaris8です。

そのファイルをアクセス(見るだけでも)したUIDが何かわかる、うまい方法はないでしょうか。

OSの機能にあればいいですけど
サードパーティの製品でも構いません。

Aベストアンサー

SunShieldって、標準でついてませんでしたっけ?

参考URL:http://docs.sun.com/?l=ja&q=sunshield&p=/doc/806-2723

Qエラーメッセージのコピー

エラーメッセージのダイヤログボックスの文字を手軽に選択してメモ帳にコピーして貼り付けるにはどうすればいいでしょうか?windows98 2000 XP 2003server などについておしえていただければ幸いです。

Aベストアンサー

私は【窓ストーカー】というフリーソフトを使用しています。
文字にリンクが張ってある場合、タグが入ってしまうという欠点はあるものの、
簡単で使いやすくておすすめです

98、Me、XPの動作確認済みとのことです

参考URL:http://www.vector.co.jp/vpack/browse/pickup/pw5/pw005824.html

Qエラーメッセージ

Debian GNU/Linux
をFDでインストールしようとしています。
そこでhttp://www.ep.sci.hokudai.ac.jp/~inex/y2002/0110/Debian_install/install.html
を見てインストールをやっています。そこで質問なのですが、
rescueディスクでブートさせて
 -------------------------------------------------------------------
 Insert root floppy disk to be loaded into RAM disk and press ENTER
 -------------------------------------------------------------------
とでて、指示通りにrootディスクに入れ替えエンターを押したところ、
 -------------------------------------------------------
 request_module[block-major-2]: Root fs not mounted
 apm: BIOS version 1.2 Flags 0x02 (Drivet version 1.13)
 apm:disabled on user request.
 VFS: Insert root floppy press ENTER
 -------------------------------------------------------
とでます。とりあえずエンターを押せということなので更に押すと、
 -------------------------------------------------------
 request_module[block-major-2]: Root fs not mounted
 VFS: Cannot open root vevice 02:00
 Kernel panic: VFS: Unable to mount root fs on 02:00
 --------------------------------------------------------
となり、固まってしまいます。
ROOTディスクがマウントできていない?
ROOTディスクの作成は間違っていないはずです。
まったく原因がわからず困っています。
どなたかお願いします。

インストールしようとしているPCは
http://www3.toshiba.co.jp/pc/catalog/oldpc/libretto/lib100.htmです。
HDのパーティションは何もいじってません。
FDはPCカードからの出力となっています。

Debian GNU/Linux
をFDでインストールしようとしています。
そこでhttp://www.ep.sci.hokudai.ac.jp/~inex/y2002/0110/Debian_install/install.html
を見てインストールをやっています。そこで質問なのですが、
rescueディスクでブートさせて
 -------------------------------------------------------------------
 Insert root floppy disk to be loaded into RAM disk and press ENTER
 -------------------------------------------------------------------
とでて、指示通りにrootディスクに入...続きを読む

Aベストアンサー

http://oshiete1.goo.ne.jp/kotaeru.php3?q=471123 の方ですよね.
CDもネットワークもなし,FDもPCMCIA接続とは,かなりきつそうです.
起動ディスクでカーネルが起動しても,その後FDは認識されないでしょう.
googleさんに訊ねると

http://lists.debian.or.jp/debian-users/199805/msg00251.html

というのがありましたが,参考になるかどうか.

以下は思いつきですが,

・DOSのFDで起動(fdisk, sys, format など,必要なツールを組み込んでおく)
・とりあえず,HDDの先頭に小さなDOSパーティションを作りアクティブにする.
・sys c: とかやって,HDDから起動できるようにする.
・後は必要なものをFDでHDDにこつこつコピーして,HDD起動後 loadlinを使ってなんとか debianをインストールする.

一時的にでも,誰かから借りるなどして,リムーバブルケースが使えれば,HDDを取り外して別のPCでコピー作業ができますよね.
そうなると,ハードディスクインストールができるので,ディストリビューション選択の幅も広がると思うんですけどね.

http://oshiete1.goo.ne.jp/kotaeru.php3?q=471123 の方ですよね.
CDもネットワークもなし,FDもPCMCIA接続とは,かなりきつそうです.
起動ディスクでカーネルが起動しても,その後FDは認識されないでしょう.
googleさんに訊ねると

http://lists.debian.or.jp/debian-users/199805/msg00251.html

というのがありましたが,参考になるかどうか.

以下は思いつきですが,

・DOSのFDで起動(fdisk, sys, format など,必要なツールを組み込んでおく)
・とりあえず,HDDの先頭に小さなDOSパーティ...続きを読む

Q英語でのエラーメッセージ

パソコンにおいて、各エラーのメッセージが日本語で出ない理由は何でしょう? 英語に多少の心得はあっても、英文で表示が出た時点で絶望的な気分に成る方が大半だと思いますが、メーカー側がその辺りまで配慮しない理由を御存知のから、お知恵拝借。

Aベストアンサー

PC-9800シリーズ等の日本国内専用設計パソコンの時代と違い、今のWindowsパソコンはOSの動作していない時は基本的に英数字しか表示できません。
そのため、HDDがクラッシュした等の理由でWindowsが正常起動しない際のエラーメッセージは英語にせざるを得ません。


このカテゴリの人気Q&Aランキング

おすすめ情報