⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readdir.c

📁 linux下用PCMCIA无线网卡虚拟无线AP的程序源码
💻 C
字号:
#include <errno.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <dirent.h>#include "dirstream.h"extern int getdents __P ((unsigned int fd, struct dirent *dirp, unsigned int count));struct dirent *readdir(DIR * dir){	int result;	struct dirent *de;	if (!dir) {		__set_errno(EBADF);		return NULL;	}	/* Are we running an old kernel? */	if (dir->dd_getdents == no_getdents) {		abort();	}	if (dir->dd_size <= dir->dd_nextloc) {		/* read dir->dd_max bytes of directory entries. */		result = getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);		/* We assume we have getdents (). */		dir->dd_getdents = have_getdents;		if (result <= 0) {			result = -result;			if (result > 0) {				/* Are we right? */				if (result == ENOSYS) {					dir->dd_getdents = no_getdents;					abort();				}				__set_errno(result);			}			return NULL;		}		dir->dd_size = result;		dir->dd_nextloc = 0;	}	de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);	/* Am I right? H.J. */	dir->dd_nextloc += de->d_reclen;	/* We have to save the next offset here. */	dir->dd_nextoff = de->d_off;	return de;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -