write()実行後にexit()しないとコアダンプする(解決)

昨日の記事、
write()実行後にexit()しないとコアダンプする - kurokuronatto's blog
の疑問が解決したのでメモ。

C言語のプログラムだと、最初にCRT(C Runtime)からmain関数が呼ばれる。
その後main関数終了後のreturnでCRTに処理が戻り、
CRTの中でexit()が呼ばれてプログラムが終了する。

しかしアセンブリ言語の場合にはCRTがないので、自分でexit()を読んでやらないと
プログラムが終了せず、テキスト領域の外にあるコードを実行しようとする。
そこでセグメンテーション違反が発生する。

なるほど、実行領域の違反ってことでセグメエラーになったのね。。
勉強になった。

CRTは、確かCのプログラムでスタティックリンクされるライブラリだったかな?
よく分からないから、また調べてみよ。