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

📄 io.c

📁 freedos32的源代码
💻 C
字号:
#include <sys/stat.h>#include <ll/i386/hw-data.h>#include <ll/i386/error.h>#include <ll/stdarg.h>#include <filesys.h>#define FD32_O_ACCMODE O_ACCMODE#define FD32_O_RDONLY  O_RDONLY#define FD32_O_WRONLY  O_WRONLY#define FD32_O_RDWR    O_RDWR#define FD32_O_SYNC    O_SYNC#define FD32_O_CREAT   O_CREAT#define FD32_O_EXCL    O_EXCL#define FD32_O_TRUNC   O_TRUNC#define FD32_O_APPEND  O_APPEND#undef O_ACCMODE#undef O_RDONLY#undef O_WRONLY#undef O_RDWR#undef O_SYNC#undef O_CREAT#undef O_EXCL#undef O_TRUNC#undef O_APPEND#include <kernel.h>#include <sys/fcntl.h>ssize_t	read(int fd, void *ptr, size_t len){  int res;  res = fd32_read(fd, ptr, len);  return res;}off_t lseek(int fd, off_t ptr, int dir){  int res;  long long int newpos;    res = fd32_lseek(fd, ptr, dir, &newpos);  if (res < 0) {    return res;  }  return newpos;}ssize_t	write(int fd, const void *ptr, size_t len){  int res;    res = fd32_write(fd, (void *) ptr, len);  return res;}int close(int fd){  return fd32_close(fd);}int open(const char *name, int flags, ...){  int mode, res, action;  DWORD dosflags;  WORD dosattr;  va_list ap;    /* Get the mode */  va_start (ap, flags);  mode = va_arg (ap, int);  va_end (ap);  dosflags = 0;  dosattr = 0;  switch (flags & O_ACCMODE)  {    case O_RDONLY: dosflags |= FD32_O_RDONLY; break;    case O_WRONLY: dosflags |= FD32_O_WRONLY; break;    case O_RDWR  : dosflags |= FD32_O_RDWR;   break;  }  if (flags & O_CREAT)  dosflags |= FD32_O_CREAT;  if (flags & O_TRUNC)  dosflags |= FD32_O_TRUNC;  if (flags & O_EXCL)   dosflags |= FD32_O_EXCL;  if (flags & O_APPEND) dosflags |= FD32_O_APPEND;  if (flags & O_SYNC)   dosflags |= FD32_O_SYNC;  if ((mode & S_IRUSR) && !(mode & S_IWUSR)) dosattr |= FD32_ARDONLY;  message("0x%08xh --> 0x%08lxh\n", flags, dosflags);  res = fd32_open((char *) name, dosflags, dosattr/*mode*/, 0, &action);  return res;}int fstat(int fd, struct stat *st){  st->st_mode = S_IFCHR;  return 0;}

⌨️ 快捷键说明

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