システム プログラミングには、コンピューターの基礎となるハードウェアとソフトウェアとの対話が含まれます。 C は、ハードウェア リソースに直接アクセスできるため、システム プログラミングに推奨される言語の 1 つです。このガイドでは、C 言語の基礎から実際の応用例まで、システム プログラミングの旅へお連れします。
変数とデータ型:
変数はデータを格納するために使用されます。 C では、変数はデータ型を宣言する必要があります。例:
int age; // 声明一个整型变量 "age"
関数:
関数は、特定のタスクを実行する再利用可能なコード ブロックです。 C 関数の構文は次のとおりです。
int add(int x, int y) { return x + y; }
ポインター:
ポインター変数は、他の変数のメモリ アドレスを指します。これらはメモリを動的に管理するために使用されます。
int num = 3; int *ptr = # // ptr 指向变量 num 的地址
メモリ管理:
システム プログラミングにはメモリの直接管理が含まれます。メモリ領域を割り当て、解放する方法を知る必要があります。
// 分配 sizeof(int) 字节的内存 int *p = malloc(sizeof(int)); // 释放内存 free(p);
ファイル I/O:
ファイル I/O 操作は、システム プログラミングにとって重要です。ファイルは、fopen()
、fread()
、fwrite()
関数を使用して操作できます。
// 打开 "test.txt" 文件 FILE *file = fopen("test.txt", "r"); // 读取文件内容 char buffer[1024]; fread(buffer, 1, 1024, file); // 关闭文件 fclose(file);
オペレーティング システムの対話:
C 言語は、オペレーティング システムと対話するためのシステム コールを提供します。これらの呼び出しにより、プログラムはプロセスの作成や終了などの特定のタスクを実行できます。
// 创建一个子进程 pid_t pid = fork();
単純なシェルの作成は、実際のシステム プログラミングの好例です。手順は次のとおりです:
fgets()
関数を使用します。 execv()
関数を使用します。 完全なコードは次のとおりです:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main() { char input[1024]; // 存储用户输入 char *words[512]; // 存储命令和参数 pid_t pid; // 子进程 ID while (1) { // 读取用户输入 printf("> "); fgets(input, 1024, stdin); // 解析命令 int num_words = tokenize(input, words); // 执行命令 pid = fork(); if (pid == 0) { // 子进程 execv(words[0], words); perror("execv failed"); exit(1); } else if (pid > 0) { // 父进程 waitpid(pid, NULL, WUNTRACED); } else { // fork 失败 perror("fork failed"); } } return 0; }
以上がシステム プログラミングの詳細: C の初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。