_seekdir.c

来自「操作系统源代码」· C语言 代码 · 共 33 行

C
33
字号
/*	seekdir()					Author: Kees J. Bot *								24 Apr 1989 */#define nil 0#include <lib.h>#define lseek	_lseek#define readdir	_readdir#define seekdir	_seekdir#include <sys/types.h>#include <dirent.h>#include <unistd.h>#include <errno.h>int seekdir(DIR *dp, off_t pos)/* Seek to position pos in a directory. */{	int off;	if (dp == nil) { errno= EBADF; return -1; }	dp->_count= 0;	dp->_ptr= dp->_buf;	off= pos & (sizeof(dp->_buf) - 1);	dp->_pos= pos - off;	if (lseek(dp->_fd, dp->_pos, SEEK_SET) == -1) return -1;	while (dp->_pos < pos && readdir(dp) != nil) {}	return 0;}

⌨️ 快捷键说明

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