시스템 프로그래밍에는 컴퓨터의 기본 하드웨어 및 소프트웨어와의 상호 작용이 포함됩니다. C는 하드웨어 리소스에 직접 액세스할 수 있기 때문에 시스템 프로그래밍에서 선호되는 언어 중 하나입니다. 이 가이드는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!