ゾンビでもわかるC言語プログラミング

C言語入門者の応援をします

[C言語] exec系関数を使用してシェルコマンドを実行する

Index Index 1. はじめに 2. 関数名の意味 2.1 l 2.2 v 2.3 p 2.4 e 3. 戻り値 (adsbygoogle = window.adsbygoogle || []).push({}); 1. はじめに exec系関数を使用することで、シェルコマンドを実行することができる。 exec系関数には、以下の6種類が存在す…

[C言語] system関数を使用してシェルコマンドを実行する

Index Index 1. はじめに 2. 書式 3. 戻り値 4. 使ってみる 5. 注意 参考 (adsbygoogle = window.adsbygoogle || []).push({}); 1. はじめに system関数を使用することで、C言語でシェルコマンドを実行することができる。 本稿では、system関数の使い方を説…

TCPネットワークプログラミング 簡易サーバー作成

Index 1. はじめに 本稿では、socketシステムコールを使用して、簡単なechoサーバをC言語で作成する。 2. 使用するシステムコール 今回のTCP通信のネットワークプログラミングには、以下のシステムコールを使用する。 システムコール 使用用途 socket() ソケ…

Linux システムコールプログラミング 入門

Index Index 1. はじめに 2. システムコール概要 3. システムコールを書いてみる 4. (おまけ) インラインアセンブリでシステムコールを書いてみる (adsbygoogle = window.adsbygoogle || []).push({}); 1. はじめに システムコールとは、カーネルの機能を使…

rand関数でランダムな値を生成する

Index 1. はじめに C言語では、rand関数を使用することで擬似乱数を生成することができます。 擬似乱数は、コンピュータで擬似的に生成する乱数で、完全に偏りがないランダムな値にはなりません。 コンピュータ上で完全にランダムな値を生成するのはとても困…

time関数で現在時刻を取得する

1. はじめに C言語で現在時刻を取得するには、time関数を使用します。 time関数の書式は以下になります。 #include <time.h> time_t time(time_t *t); time関数の引数は、通常 NULL を指定します。 NULL以外の場合は、戻り値は引数の指しているメモリーにも格納され</time.h>…

printfフォーマット指定子一覧

フォーマット指定子 説明 d, i int を10進数として出力する u unsigned int を10進数として出力する o unsigned int を8進数として出力する x, X unsigned int を16進数として出力するx変換では、 abcdef が使用され、X変換では、ABCDEF が使用される f, F d…

scanf関数で入力を受け取る

Index 1. はじめに scanf関数を使用すると、キーボードからの入力を受け取ることができます。 2. 文字列を受け取る 以下は、入力を文字列として受け取り、入力した文字列を出力するプログラムです。 #include <stdio.h> int main() { char s[1024]; printf("なにか入</stdio.h>…

switch文

switch文は、ある値に応じて処理を変えたいときに使用できます。 以下のコードを実行してみてください。 #include <stdio.h> int main() { int d = 2; switch (d) { case 0: printf("dの値は0です。\n"); break; case 1: printf("dの値は1です。\n"); break; case 2: </stdio.h>…

[C言語] ターミナルのサイズを取得する

以下のコードで取得することができる。 #include <stdio.h> #include <unistd.h> #include <sys/ioctl.h> int main(int argc, char *argv[]) { struct winsize ws; if( ioctl( STDOUT_FILENO, TIOCGWINSZ, &ws ) != -1 ) { printf("Width = %d\n", ws.ws_col); printf("Height = %d\n", ws.ws</sys/ioctl.h></unistd.h></stdio.h>…

配列とポインタの関係

配列はアドレスを保持しており、多くの点でポインタ型変数と同じように扱うことができます。 以下のコードでは、配列変数の中身を表示しています。 #include <stdio.h> #include <string.h> int main() { char s[10]; strcpy(s, "Hello!"); printf("%p\n", s); printf("%llx\n",</string.h></stdio.h>…

ポインタ

Index Index 1. ポインタとは 2. ポインタを使ってみる 3. ポインタを使って変数の値を変える 4. ポインタで遊んでみる 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. ポインタとは C言語学習者の多くが挫折する原因の一つが、このポインタだ…

メモリとアドレス

Index Index メモリとは アドレスとは C言語で変数のアドレスを調べる 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); メモリとは コンピュータには、メモリというものがあります。 メモリという言葉は、プログラミングに詳しくない人も聞いたこ…

数を表す進数の基本

Index Index 進数とは 2進数 C言語で2進数を扱う 8進数 C言語で8進数を扱う 16進数 C言語で16進数を扱う 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 進数とは 情報学では、進数がよく出てきます。 進数は、数を表す方法であり、普段私達が使…

printf関数で出力を整形する

Index Index 1. はじめに 2. 右詰めにする 3. 左をゼロ埋めにする 4. フィールド境界で左詰めする 5. 正の時に+記号を付加する 書籍 1. はじめに printf関数では、表示の右詰めなど整形をすることができる。 まずは、普通にprintf関数を使用して、数値を表示…

アスキーコード対応表

8進数 10進数 16進数 文字 8進数 10進数 16進数 文字 000 0 0 NUL '\0' (ヌル文字) 100 64 40 @ 001 1 1 SOH (ヘッダー開始) 101 65 41 A 002 2 2 STX (テキスト開始) 102 66 42 B 003 3 3 ETX (テキスト終了) 103 67 43 C 004 4 4 EOT (転送終了) 104 68 44…

C言語 型 一覧

型一覧 型の名前 バイト 表現できる値の範囲 int 4 -2,147,483,648 ~ 2,147,483,647 unsigned int 4 0 ~ 4,294,967,295 char 1 -128 ~ 127 unsigned char 1 0 ~ 255 short 2 -32,768 ~ 32,767 unsigned short 2 0 ~ 65,535 long 4 -2,147,483,648 ~ 2,147,48…

文字と整数の関係

char型は、1バイトであり、-128 ~ 127の整数が表現できます。 ここで疑問に思われた方がいるかもしれませんが、今までchar型は文字を入れる型と習いました。 これはどういうことか、以下のコードを実行してみましょう。 #include <stdio.h> int main() { char c; c = </stdio.h>…

型とバイト

コンピュータの情報の単位には、ビットとバイトがあります。 よく何ギガバイトなど聞くかと思いますが、これは、情報を表すことのできる量になります。 量として 1 ビットが最小単位で、0 か 1 の 2 パターンを表すことができます。 ビットは1つのコインと考…

配列と文字列の関係

次のコードを実行してみましょう。 1 #include <stdio.h> 2 3 int main() { 4 char s[10]; 5 6 s[0] = 'H'; 7 s[1] = 'e'; 8 s[2] = 'l'; 9 s[3] = 'l'; 10 s[4] = 'o'; 11 s[5] = 0; 12 13 printf("%c\n", s[0]); 14 printf("%s\n", s); 15 16 return 0; 17 } H Hell</stdio.h>…

配列

Index Index 配列の基本 for文と共に使う 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 配列の基本 変数がひとつの入れ物だとしたら、配列(array)は、入れ物が複数並んでいるようなイメージになります。 配列は、以下のように宣言します。 型…

ループ文(for/while)

Index Index 1. ループ文とは 2. 基本的なfor文 3. break文 4. continue文 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. ループ文とは ループ文は、ある処理を繰り返し行いたいときに使います。 C言語のループ文には、for文とwhile文があり…

条件文(if文)

Index Index 1. はじめに 2. 条件文で使用できる比較演算子 3. if文 4. else文 5. 複数の条件をつける 6. else if文 7. if文の中にif文を書く 8. 注意 9. ついでに 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. はじめに プログラミング言語…

関数の基本

Index Index 1. 関数の基本 2. 関数を作成してみる 3. 関数を作成してみる2 4. 注意 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. 関数の基本 関数を使用する際は、以下のようになっています。 関数名(第一引数, 第二引数, 第三引数, ...); …

基本的な四則演算をしてみる

Index Index 1. 数値計算の基本 2. 特殊な書き方 3. インクリメント/デクリメント 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. 数値計算の基本 次のコードを実行してみましょう。 #include <stdio.h> int main() { printf("%d\n", 10 + 2); // 加算 </stdio.h>…

変数の基本

Index Index 1. 変数を使用するプログラム1 2. 変数とは 3. 変数の宣言 4. 変数へ値の代入 5. 変数を使用するプログラム2 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. 変数を使用するプログラム1 プログラミングの用語には、変数と言うもの…

printf関数の基本的な使い方

Index Index 1. サンプルを実行してみる 2. コード解説 3. ついでに 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. サンプルを実行してみる 今回は、printf関数を使用して様々なものを出力します。 とりあえず、以下のコードを実行してみまし…

コメントアウト

大体どのプログラミング言語にもコメントアウトと言うものが存在します。 これは、コードの中に何かメモやそのコードの説明などのコメントを書きたいときに使われます。 以下のコードをみてみましょう。 1 #include <stdio.h> 2 3 int main() { 4 printf("Hello World</stdio.h>…

C言語はじめの一歩

Index Index 1. とりあえず実行してみる 2. コード解説 3. C言語の習得方法 書籍 (adsbygoogle = window.adsbygoogle || []).push({}); 1. とりあえず実行してみる ここでは、プログラムを実際に実行して文字列を出力してみます。 また、実行環境構築や実行…

なぜC言語を学ぶのか

C言語は、1970年代に使われ始めてから今でも数多くの人に学ばれてきましたが、なぜ多くの人に学ばれているのかは、そのC言語の特徴にあります。 C言語はJavaやPythonなどの他の言語に比べて、より機械語に近く、それゆえに柔軟性があり、様々なことができる…