前回の記事でCentOS 8.2にgccをインストールしましたので、C言語でHello Worldを表示するプログラムを作成してみたいと思います。
前回の記事はこちら↓
前回に引き続きSSH接続でCentOSにアクセスして、作業を行っていきます。
gccコンパイラが入っていることを確認します。
gcc -v
問題がなければ、以下のように表示されると思います。
新規でファイルを作成していきます。
vi hello_world.c
C言語でHello Worldを表示するプログラムを作成していきます。
以下のように記述しました。
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
viコマンドで開いたファイルを「:wq」と入力して、ファイルにコードを保存します。
作成したhello_world.cをコンパイルします。
前回のRubyにはありませんでしたが、C言語ではコンパイルという作業が発生します。
gcc hello_world.c
コンパイルすることで、a.outというファイルが新規で作成されました。
このファイルを実行することでHello Worldが表示されます。
a.outファイルを実行します。
./a.out
a.outを実行することで、Hello Worldが表示できました。
C言語はRubyとは違って、ソースコードをそのまま実行することができませんので、コンパイルという作業を行って、バイナリのファイルを生成して、バイナリのファイルを実行するという流れになります。
ちなみに、a.outがどのようなファイルの中身になっているか確認してみます。
バイナリファイルですので、ほとんど文字化けしています。
いくつか読み取れる文字もありますので、バイナリファイルでもわかる情報があるかもしれません。
バイナリファイル中身は文字で起こせないものもありますので、基本的にはhexdumpなどを使って中身を解析していきます。
hexdump a.out
ただの数字の羅列なので、第三者が見ただけではどの数字が何の役割をしているのかわかりませんが、この数字の羅列のどこかにHello Worldの文字が隠されていると思います。
今度探してみたいと思います。
C言語で作成するHello Worldを表示するプログラムの作成は以上になります。