亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? _stat.c

?? zip壓縮
?? C
字號:
/*  Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.  See the accompanying file LICENSE, version 2000-Apr-09 or later  (the contents of which are also included in unzip.h) for terms of use.  If, for some reason, all these files are missing, the Info-ZIP license  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html*/#pragma library#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sc.h>#include <peek.h>#include <lub.h>#include <fdb.h>#include <fsa.h>#include "theos/stat.h"/* replacement for standard library functions stat and fstat */int _stat_(struct stat* st, struct fdb* fdb);int _dstat_(struct stat* st);#define peekucb() peeknuc()/* map THEOS protection code to Unix modes */unsigned short _tm2um_(char protect){    unsigned short umask = 0;    if (!(protect & _FDB_READ_PROTECT))        umask = S_IRUSR|S_IRGRP;    if (!(protect & _FDB_WRITE_PROTECT))        umask |= S_IWUSR|S_IWGRP;    if (!(protect & _FDB_EXECUTE_PROTECT))        umask |= S_IXUSR|S_IXGRP;    if (!(protect & _FDB_ERASE_PROTECT))        umask |= S_IEUSR|S_IEGRP;    if (!(protect & _FDB_SHARED_READ_PROTECT)) {        if (_osmajor > 3)            umask |= S_IROTH|S_IXOTH;        else            umask |= S_IROTH;    }    if (!(protect & _FDB_SHARED_WRITE_PROTECT))        umask |= S_IWOTH;    if (!(protect & _FDB_MODIFIED)) {        if (_osmajor > 3)            umask |= S_IMODF;        else            umask |= S_IXOTH;    }    if (protect & _FDB_NOT_HIDDEN)        umask |= S_INHID;    return umask;}/* map Unix modes to THEOS protections */char _um2tm_(unsigned short mask){    char protect = 0;    if (!(mask & (S_IRUSR|S_IRGRP)))        protect |= _FDB_READ_PROTECT;    if (!(mask & (S_IWUSR|S_IWGRP)))        protect |= _FDB_WRITE_PROTECT;    if (!(mask & (S_IXUSR|S_IXGRP)))        protect |= _FDB_EXECUTE_PROTECT;    if (!(mask & (S_IEUSR|S_IEGRP)))        protect |= _FDB_ERASE_PROTECT;    if (_osmajor < 4) {        if (!(mask & S_IROTH))            protect |= _FDB_SHARED_READ_PROTECT;    } else {        if (!(mask & (S_IROTH|S_IXOTH)))            protect |= _FDB_SHARED_READ_PROTECT;    }    if (!(mask & S_IWOTH))        protect |= _FDB_SHARED_WRITE_PROTECT;    if (mask & S_IMODF && _osmajor > 3)        protect |= _FDB_MODIFIED;    if (mask & S_INHID && _osmajor > 3)        protect |= _FDB_NOT_HIDDEN;    return protect;}/* root directory stat */static int rdirstat(char* fn, struct stat *st){    register char* p = strchr(fn, ':');    char drive;    drive = p ? p[1] : 'S';    if (drive >= 'a' && drive <= 'Z')        drive -= 0x40;    memset(st, 0, sizeof(struct stat));    if (getlub(drive - 'A') != 255) {        st->st_org = _FDB_STAT_DIRECTORY;        st->st_mode = S_IFDIR|S_IRUSR|S_IWUSR|S_IROTH|S_IWOTH;        st->st_nlink = 1;        st->st_dev = st->st_rdev = drive - 'A';        st->st_uid = st->st_gid = getuid();        st->st_protect = _FDB_ERASE_PROTECT;        return 0;    }    errno = _errnum = ENOENT;    _errarg = fn;    return -1;}/* file stat */int _stat(const char *fn, struct stat *st){    char buf[256], buf2[256];    char *ifn;    register struct fdb *fdb;    register char *p;    if ((ifn = (char *)malloc(strlen(fn)+1)) == NULL) {        errno = _errnum = ENOMEM;        return -1;    }    if (p = strrchr(ifn, ':'))        *p = 0;    /* on current drive ./:d and .:m point to current dir     * on another drive to root directory */    if (! strcmp(ifn, "/") || ! strcmp(ifn, ".") || ! strcmp(ifn, "./")) {        if (p == NULL) {            free(ifn);            /* current dir on current drive */            ifn = getcwd(buf2, 256);            /* getcwd returns NULL on root dir on drive S */            if (ifn == NULL)                strcpy(ifn = buf2, "/:S");            /* getcwd returns /:d on root dir on any other drive */            if (ifn[1] == ':')                return rdirstat(ifn, st);        } else {            int rstat;            *p = ':';            rstat = rdirstat(ifn, st);            free(ifn);            return rstat;        }    }    if (p)        *p = ':';    strcpy(buf2, ifn);    /* remove trailing slash before optional disk name */    if (p = strrchr(buf2, '/')) {        if (p[1] == ':') {            *p = p[1];            p[1] = p[2];            p[2] = p[3];        } else if (p[1] == '\0')            *p = '\0';    }    /* if ifn is a file get file directory block structure and device */    if (fdb = _locate(buf2, buf, &st->st_dev)) {        /* is it a file from another user... */        if (strchr(buf2, '\\')        /* a public system file */          || fdb->fileowner == 0        /* or a file from the current user account ? */          || fdb->fileowner == getuid()) {            /* yes, return stat */            return _stat_(st, fdb);        } else {            /* no, say file doesn't exist */            errno = _errnum = ENOENT;            _errarg = fn;            return -1;        }    }    /* else should be a device */    st->st_rdev = st->st_dev = _lub_name(*ifn == ':' ? ifn+1 : ifn);    free(ifn);    if (st->st_dev != -1 && getlub(st->st_dev) != 255)        return _dstat_(st);    errno = _errnum = ENOENT;    _errarg = fn;    return -1;}int _fstat(int fd, struct stat *st){    unsigned short fsanum;    struct fsa fsa;    register FILE *fp;    int status;    register int i;    register char *p;    if (fd < FOPEN_MAX) {        fp = &stdin[fd];        if (_fcntl(fp,1,0) & 0x80) {            fsanum = (unsigned short) _fcntl(fp,83,0);            st->st_dev = (unsigned short) _fcntl(fp,5,0);            if (st->st_dev >= A_DISK && st->st_dev <= Z_DISK) {                for (i = 0, fsanum *= sizeof(fsa), p = (char *) &fsa;                     i < (sizeof(fsa));                     i++, fsanum++, p++)                    *p = _peekfsa((char *) fsanum);                status = _stat_(st, (struct fdb*) &fsa);                if ((st->st_blksize = _fcntl(fp,817,0)) == 0)                    st->st_blksize = BUFSIZ;                return status;            }            return _dstat_(st);        }    }    errno = _errnum = EBADF;    return -1;}static int _isprt(int dev){    return IS_PRT_LUB(dev);}/* device stat */int _dstat_(st)register struct stat* st;{    register struct ucb* ucb;    ucb = getucb(st->st_dev);    st->st_ino = 0;    if (st->st_dev <= Z_DISK     || (st->st_dev >= TAPE1 && st->st_dev <= TAPE4)) {        st->st_mode = S_IFBLK | S_IWUSR | S_IRUSR;        if (peekucb(&ucb->devowner) == 255)            st->st_mode |= S_IWGRP | S_IWOTH | S_IRGRP | S_IROTH;    } else {        st->st_mode = S_IFCHR | S_IWUSR;        if (_isprt(st->st_dev))            st->st_mode |= S_IRUSR;        if (peekucb(&ucb->devowner) == 255) {            st->st_mode |= S_IWGRP | S_IWOTH;            if (_isprt(st->st_dev))                st->st_mode |= S_IRGRP | S_IROTH;        }    }    st->st_nlink = 1;    st->st_uid = st->st_gid = getuid();    st->st_size = 0;    st->st_atime = st->st_mtime = st->st_ctime = 0;    st->st_rlen = 0;    st->st_klen = 0;    st->st_grow = 0;    st->st_blksize = 0;    return 0;}/* regular file stat */int _stat_(st, fdb)register struct stat* st;register struct fdb* fdb;{    st->st_rdev = st->st_dev;    st->st_ino = 0;    st->st_org = fdb->filestat;    switch (fdb->filestat) {    case _FDB_STAT_LIBRARY:         st->st_mode = S_IFLIB;  break;    case _FDB_STAT_DIRECTORY:       st->st_mode = S_IFDIR;  break;    case _FDB_STAT_STREAM:          st->st_mode = S_IFREG;  break;    case _FDB_STAT_RELATIVE:        st->st_mode = S_IFREL;  break;    case _FDB_STAT_KEYED:           st->st_mode = S_IFKEY;  break;    case _FDB_STAT_INDEXED:         st->st_mode = S_IFIND;  break;    case _FDB_STAT_RANDOM:          st->st_mode = S_IFRND;  break;    case _FDB_STAT_PROGRAM:         st->st_mode = S_IFR16;  break;    case _FDB_STAT_16_BIT_PROGRAM:  st->st_mode = S_IFP16;  break;    case _FDB_STAT_32_BIT_PROGRAM:  st->st_mode = S_IFP32;  break;    }    st->st_mode |= _tm2um_(st->st_protect = fdb->protect);    st->st_nlink = 1;    st->st_uid = st->st_gid = fdb->fileowner;    st->st_size = fdb->filesize;    st->st_atime = st->st_mtime = st->st_ctime = getfiledate(fdb);    st->st_rlen = fdb->reclen;    st->st_klen = fdb->keylen;    st->st_grow = fdb->filegrow;    st->st_blksize = 0;    return 0;}#include <direct.h>struct dirent* _opendir(const char* dirpath){    int l;    char *p;    struct dirent* dir;    char *mypath = NULL;    if (dirpath != NULL &&        (mypath = (char *)malloc(strlen(dirpath)+1)) == NULL) {        errno = _errnum = ENOMEM;        return NULL;    }    if (mypath) {        l = strlen(mypath);        if (l) {            p = dirpath + l - 1;            if (*p == '/') {                *p = '\0';                dir = opendir(dirpath);                *p = '/';                return dir;            }        }    }    return opendir(mypath);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美群妇大交群的观看方式| 日本伊人精品一区二区三区观看方式| 中文字幕在线视频一区| 亚洲一区二区三区美女| 国产乱人伦偷精品视频免下载| 91国产免费看| 国产精品麻豆网站| 韩国成人福利片在线播放| 欧美性大战久久| 国产精品久久久久aaaa樱花| 精品亚洲国产成人av制服丝袜 | 日日夜夜精品免费视频| 成人午夜私人影院| 久久影院视频免费| 午夜精品一区在线观看| 日本精品一区二区三区高清 | 成人午夜视频在线| 26uuu精品一区二区在线观看| 天堂一区二区在线| 在线观看免费视频综合| 亚洲欧美另类久久久精品| 粉嫩av亚洲一区二区图片| 久久久精品国产免大香伊| 捆绑变态av一区二区三区| 粉嫩av一区二区三区在线播放| 久久综合给合久久狠狠狠97色69| 日韩精品久久久久久| 欧美日韩一本到| 亚洲一区二区精品3399| 在线观看国产日韩| 亚洲免费在线观看视频| 一本大道av伊人久久综合| 亚洲日本乱码在线观看| 色婷婷综合久久久久中文一区二区| 亚洲日本一区二区| 色婷婷综合久久久久中文| 亚洲一区二区三区在线看| 在线一区二区三区做爰视频网站| 一区二区三区蜜桃| 欧美日韩一区二区三区高清| 婷婷中文字幕综合| 欧美一区二区观看视频| 久久精品国产99| 国产性色一区二区| 9l国产精品久久久久麻豆| 亚洲一区二区欧美激情| 日韩欧美一区在线观看| 国产专区综合网| 中文字幕一区二区三区av| 欧美亚洲动漫精品| 久久99在线观看| 国产欧美一区二区精品性色超碰| 成人午夜免费电影| 亚洲在线免费播放| 日韩一二三区不卡| 国产美女在线精品| 亚洲精品国产一区二区精华液| 欧美精品色综合| 国产激情一区二区三区| 亚洲欧美欧美一区二区三区| 欧美精选一区二区| 国产精品夜夜嗨| 亚洲一区二区三区免费视频| 日韩精品中文字幕一区| www.亚洲激情.com| 日韩激情一二三区| 亚洲国产岛国毛片在线| 欧美三级中文字幕| 国产另类ts人妖一区二区| 一个色综合av| 精品国产免费人成电影在线观看四季 | 中文字幕在线不卡一区| 欧美一级免费观看| 成人精品视频.| 日本欧美一区二区| 亚洲欧美一区二区久久| 久久亚洲综合色一区二区三区| 色香蕉久久蜜桃| 国产成人免费视| 五月天丁香久久| 亚洲色图20p| 久久久久久久久久电影| 欧美乱熟臀69xxxxxx| 99久久免费视频.com| 麻豆高清免费国产一区| 亚洲欧美日韩久久精品| www国产成人免费观看视频 深夜成人网 | 久久久不卡影院| 7777精品伊人久久久大香线蕉经典版下载| 国产精品888| 五月天亚洲精品| 一区二区三区中文字幕电影| 国产网站一区二区| 精品国产1区二区| 欧美精品日日鲁夜夜添| 色综合久久88色综合天天6| 高清在线成人网| 国产一区二区在线影院| 久久成人羞羞网站| 午夜精品免费在线观看| 亚洲国产婷婷综合在线精品| 亚洲欧美日韩小说| 亚洲日本在线看| 自拍视频在线观看一区二区| 国产精品色哟哟| 国产欧美日韩在线视频| 国产欧美日韩在线看| 国产日韩欧美精品电影三级在线 | 日韩精品电影在线| 亚洲一二三级电影| 亚洲成人激情社区| 亚洲欧美日本韩国| 日韩美女视频一区| 亚洲男女毛片无遮挡| 亚洲视频在线一区二区| 国产精品素人视频| 综合久久一区二区三区| 中文字幕人成不卡一区| 中文字幕一区二区三区不卡| 亚洲欧美日韩国产手机在线| 亚洲人吸女人奶水| 亚洲综合丁香婷婷六月香| 亚洲国产精品尤物yw在线观看| 香蕉乱码成人久久天堂爱免费| 日韩精品亚洲专区| 麻豆国产一区二区| 国产一区二区三区久久久| 成人做爰69片免费看网站| 99精品一区二区三区| 欧美吞精做爰啪啪高潮| 在线91免费看| www国产精品av| ...xxx性欧美| 婷婷久久综合九色综合伊人色| 麻豆91精品91久久久的内涵| 国产丶欧美丶日本不卡视频| 91在线无精精品入口| 欧美电影一区二区三区| 2021久久国产精品不只是精品| 国产精品欧美一区喷水| 亚洲大片一区二区三区| 狠狠狠色丁香婷婷综合激情| 成人高清视频在线| 欧美精品v日韩精品v韩国精品v| 精品国产制服丝袜高跟| 亚洲欧美日韩久久| 精品在线一区二区| 色综合天天综合网天天狠天天 | 蜜桃视频免费观看一区| 国产成人午夜99999| 欧美亚洲一区二区在线观看| 精品久久久久一区| 一区二区三区欧美日韩| 国内久久婷婷综合| 在线观看一区二区精品视频| 精品国产一区二区在线观看| 亚洲日本va午夜在线电影| 日本91福利区| 色综合久久天天综合网| 日韩精品一区二区三区中文不卡| 中文字幕亚洲综合久久菠萝蜜| 秋霞av亚洲一区二区三| 91年精品国产| 久久夜色精品国产噜噜av | 国产精品久久久久久久久果冻传媒 | 成人午夜看片网址| 欧美日韩视频一区二区| 国产日韩欧美综合在线| 日韩精品三区四区| 91老师片黄在线观看| 国产亚洲一区字幕| 精品系列免费在线观看| 欧洲中文字幕精品| 国产精品免费视频一区| 国产一区二区在线免费观看| 这里是久久伊人| 亚洲第一二三四区| 色成人在线视频| 国产精品第五页| 国产乱色国产精品免费视频| 欧美一区二区三区视频在线 | 国产乱人伦偷精品视频免下载| 欧美性色综合网| 亚洲美女视频一区| 成人av先锋影音| 国产日韩成人精品| 国产高清亚洲一区| 国产午夜精品理论片a级大结局| 久久精品72免费观看| 欧美一区二区三区免费视频| 亚洲gay无套男同| 色视频欧美一区二区三区| 国产精品无人区| 成人午夜视频在线观看| 久久久久久黄色| 国产综合色精品一区二区三区| 欧美一级片免费看| 激情五月播播久久久精品| 亚洲精品一区二区精华| 国产激情91久久精品导航|