OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

セグメンテーション・フォールト

  • すぐに回答を!
  • 質問No.130369
  • 閲覧数611
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 43% (13/30)

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

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

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

上記メッセージの意味と、なぜrootからだと
プロセスが終了しないのか、が分かりません。
どなたかお分かりになる方、よろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 24% (357/1463)

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

お礼率 43% (13/30)

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

大変助かりました。どうもありがとうございます。
投稿日時 - 2001-09-05 19:26:32
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ