dirent.h
#include <dirent.h>
是POSIX.1标准定义的unix类目录操作的头文件,包含了许多UNIX系统服务的函数原型,例如opendir函数、readdir函数.
opendir函数:
DIR *opendir(const char *pathname);返回值:若成功则返回指针,若出错则返回NULL。
struct dirent *readdir(DIR *dp); 返回值:若成功则返回指针,若在目录结尾或出错则返回NULL。
fcntl.h
fcntl.h与unistd.h
fcntl.h定义了很多宏和open,fcntl函数原型
unistd.h定义了更多的函数原型
使用#include <pthread.h>
在Linux中使用线程相关的东西就要使用到这个头文件,但这还不算。如果仅仅使用这个头文件,会出现错误:
undefined reference to `pthread_create'
collect2: ld returned 1 exit status
make: *** [threadid] Error 1
之所以出现这样的错误,是因为我们没有链接相应的函数库。所以在编译的时候要加上 –lpthread 选项。
Makefile文件如下:
CC = gcc
CFLAGS = -I/home/cat/apue/apue.2e/include -Wall -g
threadid: threadid.o
$(CC) $(CFLAGS) -o $@ $^ -lpthread
dirent.h
#include <dirent.h>
是POSIX.1标准定义的unix类目录操作的头文件,包含了许多UNIX系统服务的函数原型,例如opendir函数、readdir函数.
opendir函数:
DIR *opendir(const char *pathname);返回值:若成功则返回指针,若出错则返回NULL。
struct dirent *readdir(DIR *dp); 返回值:若成功则返回指针,若在目录结尾或出错则返回NULL。
fcntl.h
fcntl.h与unistd.h
fcntl.h定义了很多宏和open,fcntl函数原型
unistd.h定义了更多的函数原型
使用#include <pthread.h>
在Linux中使用线程相关的东西就要使用到这个头文件,但这还不算。如果仅仅使用这个头文件,会出现错误:
undefined reference to `pthread_create'
collect2: ld returned 1 exit status
make: *** [threadid] Error 1
之所以出现这样的错误,是因为我们没有链接相应的函数库。所以在编译的时候要加上 –lpthread 选项。
Makefile文件如下:
CC = gcc
CFLAGS = -I/home/cat/apue/apue.2e/include -Wall -g
threadid: threadid.o
$(CC) $(CFLAGS) -o $@ $^ -lpthread
本文详细介绍了C语言中的 dirent.h 和 fcntl.h 头文件的作用,包括 opendir、readdir 函数的使用方法,以及如何正确链接 pthread 库以避免编译错误。通过实例演示了如何在Linux环境中进行线程相关操作。
4096

被折叠的 条评论
为什么被折叠?



