?? primos.c
字號:
/*** primos.c**** This file contains emulation routines for some common Unix functions**** Author: Peter Eriksson <pen@lysator.liu.se>*/#ifdef __50SERIES#include <stdio.h>#include <fcntl.h>#include <sys/stat.h>uid_t primos_uid = 42;gid_t primos_gid = 42;mode_t primos_mode = 600;/* Dummy do-nothing routine for chmod() */int chmod(path, mode) char *path; int mode;{ return 0;}char *getenv(var) char *var;{ char buf[256]; extern char *gvget(); buf[0] = '.'; strcpy(buf+1, var); return gvget(buf);}unlink(path) char *path;{ return delete(path);} int lstat(path, buf) char *path; struct stat *buf;{ return stat(path, buf);}int stat(path, buf) char *path; struct stat *buf;{ buf->st_dev = 1; buf->st_ino = 1; buf->st_nlink = 1; buf->st_uid = primos_uid; buf->st_gid = primos_gid; buf->st_rdev = 1; buf->st_blksize = 2048; buf->st_rwlock = frwlock(path); switch (buf->st_type = ftype(path)) { case 0: case 1: /* Regular file (SAM or DAM) */ buf->st_size = fsize(path); buf->st_mtime = fdtm(path); buf->st_mode = S_IFREG|primos_mode; break; case 4: buf->st_size = 0; buf->st_mtime = fdtm(path); buf->st_mode = S_IFDIR|primos_mode; break; case -1: return -1; default: buf->st_mode = primos_mode; buf->st_size = fsize(path); buf->st_mtime = fdtm(path); } buf->st_blocks = (buf->st_size-1) / buf->st_blksize + 1; /* Should be fixed to really fetch these values, but that * would require calling some PRIMOS subroutines and I don't have * a copy of the Primos Subroutine reference manuals here.. */ buf->st_atime = buf->st_mtime; buf->st_ctime = buf->st_mtime; return 0;}int fstat(fd, buf) int fd; struct stat *buf;{ char path[1025]; return stat(getname(fd, path), buf);}int ascii2pascii(c) int c;{ return (c ? (c | 0x80) : '\0');}#endif /* __50SERIES */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -