タグ

Linuxとbinaryに関するch1248のブックマーク (3)

  • プログラムは main から始まるわけではない

    はじめに C 言語を学び始めると、「プログラムは main 関数から実行される」と教わるのが一般的ではないかと思う。それ自体が誤りとは言わないが、ちょっと手を動かして調べてみれば事態はそう単純な話ではないことに気付くだろう。 と言うわけで、記事ではプログラムはどこから始まるかを実際に手を動かして確認していきたいと思う。 なお、確認は WSL2 の Ubuntu 24.04 で実行している。実際に表示される値は環境によって異なるとは思うが、同じ流れで確認できるはずだ。また、Linux 以外でも *BSD 系であれば同じようなことが分かるのではないかと思う。WindowsmacOS?知らない子ですね… 真の実行開始地点はどこか? 単に一言「プログラムは main から始まるわけではない」とだけ言われても、「じゃあどこなんだよ?」となるだろう。 そこで、コンパイラによって生成された実行ファイ

    プログラムは main から始まるわけではない
    ch1248
    ch1248 2026/01/01
    ブコメの通り、確かにOSと実行環境に依るかもな。OSは実行環境ではあるし、OSが無い環境もあるので、正確には「実行環境に依る」でOKか。
  • C言語がコンパイル~実行されるまで - Qiita

    記事の内容 以下のソースコードがコンパイル~実行されるまでに、何が行われるのかを理解する。 細かいオプションや処理の詳細は追わない。 #include <stdio.h> #define MESSAGE "hello world\n" int main(int argc, char *argv[]) { printf(MESSAGE); return 0; } ]$ uname -rm 3.10.0-957.10.1.el7.x86_64 x86_64 ]$ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions

    C言語がコンパイル~実行されるまで - Qiita
  • アセンブラのこと - 雑記

    最近になってなぜかアセンブラのが、書店に多くなってきたような気がする。いやアセンブラを学ぼう、っていうのは良いことだとは思うんですけどね、ええ。

    アセンブラのこと - 雑記
  • 1