のエントリポイント関数の結果の交換:私はC言語でプログラムを以下しているセグメンテーションフォールト
#include<stdio.h>
int main()
{
printf("Normal.\n");
return 0;
}
int fff()
{
printf("Fun!\n");
return 0;
}
は私がプログラムを実行すると、それは私を与えるように、それをコンパイルしたかった「楽しいです!」。私は私のプログラムをコンパイルするには、以下の行を使用:
gcc deneme.c -e fff -o deneme
私は「deneme」という名前のプログラムを実行すると、私が得た:
Fun!
Segmentation fault (core dumped)
あなたが見ることができるように、私は私が望むものを得たが、理解していません"セグメンテーションフォールト"部分。理由は何ですか?
を使用することができます_start'は、アセンブリルーチンです。 –
どうすれば "segmentaion fault"がなくても同じようにコンパイルできますか? – ertugrul
あなたの入力関数は 'void'型で、' _exit(ret) 'の呼び出しで終了します。ここで、' ret'は戻りコードです。 '-nostartfiles'でコンパイルする必要があるかもしれません。 –