Linux C常用函数
Linux C编程中,标准库提供了丰富的函数,涵盖了文件操作、内存管理、字符串处理、进程控制等多个领域,掌握这些常用函数能够显著提升开发效率,本文将分类介绍Linux C编程中常用的函数,包括其功能、参数及使用示例。

标准输入输出函数
标准输入输出函数是C语言中最基础的函数,主要用于数据的输入和输出操作。
-
printf
- 功能:格式化输出数据到标准输出(通常是终端)。
- 原型:
int printf(const char *format, ...); - 示例:
printf("Hello, %s!\n", "World");
-
scanf
- 功能:从标准输入读取数据并按格式化存储到变量中。
- 原型:
int scanf(const char *format, ...); - 示例:
int age; scanf("%d", &age);
-
fopen/fclose
- 功能:打开和关闭文件。
- 原型:
FILE *fopen(const char *path, const char *mode);/int fclose(FILE *stream); - 示例:
FILE *fp = fopen("test.txt", "r"); if (fp) fclose(fp);
-
fread/fwrite
- 功能:从文件读取或向文件写入数据块。
- 原型:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);/size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
字符串处理函数
字符串处理是C编程中的常见任务,标准库提供了多种函数来操作字符串。
-
strcpy/strncpy
- 功能:复制字符串,
strncpy可指定最大复制长度。 - 原型:
char *strcpy(char *dest, const char *src);/char *strncpy(char *dest, const char *src, size_t n);
- 功能:复制字符串,
-
strlen
- 功能:计算字符串长度(不包括终止符
\0)。 - 原型:
size_t strlen(const char *s);
- 功能:计算字符串长度(不包括终止符
-
strcmp/strncmp
- 功能:比较字符串,
strncmp可指定比较长度。 - 原型:
int strcmp(const char *s1, const char *s2);/int strncmp(const char *s1, const char *s2, size_t n);
- 功能:比较字符串,
-
strcat/strncat
- 功能:连接字符串,
strncat可指定最大连接长度。 - 原型:
char *strcat(char *dest, const char *src);/char *strncat(char *dest, const char *src, size_t n);
- 功能:连接字符串,
内存管理函数
动态内存管理是C语言的核心功能之一,以下函数用于分配和释放内存。

-
malloc/calloc
- 功能:
malloc分配指定字节的内存,calloc分配并初始化为0。 - 原型:
void *malloc(size_t size);/void *calloc(size_t nmemb, size_t size); - 示例:
int *arr = (int *)malloc(10 * sizeof(int));
- 功能:
-
realloc
- 功能:调整已分配内存的大小。
- 原型:
void *realloc(void *ptr, size_t size);
-
free
- 功能:释放动态分配的内存。
- 原型:
void free(void *ptr);
文件操作函数
除了基本的fopen/fclose,Linux还提供了更多文件操作函数。
-
open/close
- 功能:低级文件操作,直接通过文件描述符访问文件。
- 原型:
int open(const char *pathname, int flags, mode_t mode);/int close(int fd);
-
read/write
- 功能:从文件描述符读取或写入数据。
- 原型:
ssize_t read(int fd, void *buf, size_t count);/ssize_t write(int fd, const void *buf, size_t count);
-
lseek
- 功能:移动文件指针。
- 原型:
off_t lseek(int fd, off_t offset, int whence);
进程控制函数
Linux是多任务操作系统,进程控制函数用于管理进程。
-
fork
- 功能:创建子进程。
- 原型:
pid_t fork(void);
-
exec系列
- 功能:替换进程映像,如
execl、execv等。 - 原型:
int execl(const char *path, const char *arg, ...);
- 功能:替换进程映像,如
-
wait/waitpid

- 功能:等待子进程结束。
- 原型:
pid_t wait(int *status);/pid_t waitpid(pid_t pid, int *status, int options);
时间与日期函数
时间处理函数在定时任务、日志记录等场景中常用。
-
time
- 功能:获取当前时间(秒数)。
- 原型:
time_t time(time_t *t);
-
localtime
- 功能:将时间戳转换为本地时间结构。
- 原型:
struct tm *localtime(const time_t *timer);
-
strftime
- 功能:格式化时间字符串。
- 原型:
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
错误处理函数
错误处理函数用于获取和报告错误信息。
-
perror
- 功能:打印错误信息到标准错误输出。
- 原型:
void perror(const char *s);
-
strerror
- 功能:将错误码转换为错误字符串。
- 原型:
char *strerror(int errnum);
常用函数总结
以下是部分常用函数的快速参考表:
| 函数名 | 功能 | 头文件 |
|---|---|---|
| printf | 格式化输出 | stdio.h |
| malloc | 动态分配内存 | stdlib.h |
| fork | 创建子进程 | unistd.h |
| open | 打开文件 | fcntl.h |
| time | 获取当前时间 | time.h |
| strerror | 获取错误信息 | string.h |
注意事项
- 内存泄漏:动态分配的内存必须通过
free释放,避免内存泄漏。 - 缓冲区溢出:使用字符串函数时需确保目标缓冲区足够大。
- 文件描述符:使用
open后需检查返回值,避免无效描述符操作。
Linux C常用函数是程序开发的基石,熟练掌握这些函数能够高效解决实际问题,通过分类学习和实践,逐步提升编程能力。

















