目次
Linux の入出力で初心者がすぐに学ぶ関数は printf とか puts とかですかね。
int printf(const char *format, ...); int puts(const char *s);
使い方は以下のような感じになります。
main.c.
1 #include <stdio.h> 2 3 int main() 4 { 5 int x = 100; 6 printf("x = %d\n",x); 7 puts("hello"); 8 }
ビルドと出力.
$ gcc main.c $ ./a.out x = 100 hello
printf は %d が整数型データのフォーマット文字列です。
\n は改行のフォーマット文字列となります。
フォーマット文字列( const char * format )引数の後に続く引数は、文字列で指定されたデータとなり、複数の指定が可能ですね。
puts は単に文字列を指定してるだけです。
printf は例えば以下のようにポインターを表示したりできます。
main.c.
1 #include <stdio.h> 2 3 int main(int argc, char **argv) 4 { 5 char *p = 0; 6 int top = 100; 7 8 printf("&p = 0x%lx\n", (unsigned long)&p); 9 printf("&top = 0x%lx\n", (unsigned long)&top); 10 printf("&argc = 0x%lx\n", (unsigned long)&argc); 11 printf("&argv = 0x%lx\n", (unsigned long)&argv); 12 }
ビルドと出力.
$ gcc main.c $ ./a.out &p = 0x7ffd6f12afc0 &top = 0x7ffd6f12afbc &argc = 0x7ffd6f12afac &argv = 0x7ffd6f12afa0
スタック領域のアドレスの配置がわかりやすくなってますね。
スタックメモリーは高いところから下がっていくので、各変数がどのように割り当てられたかわかりますね。
ちなみに printf と puts は入出力関数の中ではひとくくりに分類できます。
printf や puts は標準出力( standard output / stdout )に出すための関数です。
Copyright 2018-2019, by Masaki Komatsu