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

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

?? ckucmd.c

?? C 語言核心協議的 C 語言源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
char *cmdv = "Unix cmd package V1A(021), 19 Jun 85";/*  C K U C M D  --  Interactive command package for Unix  *//* Modelled after the DECSYSTEM-20 command parser (the COMND JSYS) Features: . parses and verifies keywords, text strings, numbers, and other data . displays appropriate menu or help message when user types "?" . does keyword and filename completion when user types ESC . accepts any unique abbreviation for a keyword . allows keywords to have attributes, like "invisible" . can supply defaults for fields omitted by user . provides command line editing (character, word, and line deletion) . accepts input from keyboard, command files, or redirected stdin . allows for full or half duplex operation, character or line input . settable prompt, protected from deletion Functions:  cmsetp - Set prompt (cmprom is prompt string, cmerrp is error msg prefix)  cmsavp - Save current prompt  prompt - Issue prompt  cmini  - Clear the command buffer (before parsing a new command)  cmres  - Reset command buffer pointers (before reparsing)  cmkey  - Parse a keyword  cmnum  - Parse a number  cmifi  - Parse an input file name  cmofi  - Parse an output file name  cmfld  - Parse an arbitrary field  cmtxt  - Parse a text string  cmcfm  - Parse command confirmation (end of line)  stripq - Strip out backslash quotes from a string. Return codes:  -3: no input provided when required  -2: input was invalid  -1: reparse required (user deleted into a preceding field)   0 or greater: success  See individual functions for greater detail. Before using these routines, the caller should #include ckucmd.h, and set the program's prompt by calling cmsetp().  If the file parsing functions cmifi and cmofi are to be used, this module must be linked with a ck?fio file system support module for the appropriate system, e.g. ckufio for Unix.  If the caller puts the terminal in character wakeup ("cbreak") mode with no echo, then these functions will provide line editing -- character, word, and line deletion, as well as keyword and filename completion upon ESC and help strings, keyword, or file menus upon '?'.  If the caller puts the terminal into character wakeup/noecho mode, care should be taken to restore it before exit from or interruption of the program.  If the character wakeup mode is not set, the system's own line editor may be used. Author: Frank da Cruz (SY.FDC@CU20B), Columbia University Center for Computing Activities, January 1985. Copyright (C) 1985, Trustees of Columbia University in the City of New York. Permission is granted to any individual or institution to use, copy, or redistribute this software so long as it is not sold for profit, provided this copyright notice is retained.*//* Includes */#include <stdio.h>                      /* Standard C I/O package */#include <ctype.h>                      /* Character types */#include "ckucmd.h"                     /* Command parsing definitions */#include "ckcdeb.h"                     /* Formats for debug() *//* Local variables */int psetf = 0,                          /* Flag that prompt has been set */    cc = 0,                             /* Character count */    dpx = 0;                            /* Duplex (0 = full) */int hw = HLPLW,                         /* Help line width */    hc = HLPCW,                         /* Help line column width */    hh,                                 /* Current help column number */    hx;                                 /* Current help line position */#define PROML 60                        /* Maximum length for prompt */char cmprom[PROML+1];                   /* Program's prompt */char *dfprom = "Command? ";             /* Default prompt */char cmerrp[PROML+1];                   /* Program's error message prefix */int cmflgs;                             /* Command flags */char cmdbuf[CMDBL+4];                   /* Command buffer */char hlpbuf[HLPBL+4];                   /* Help string buffer */char atmbuf[ATMBL+4];                   /* Atom buffer */char filbuf[ATMBL+4];                   /* File name buffer *//* Command buffer pointers */static char *bp,                        /* Current command buffer position */    *pp,                                /* Start of current field */    *np;                                /* Start of next field */long zchki();                           /* From ck?fio.c. *//*  C M S E T P  --  Set the program prompt.  */cmsetp(s) char *s; {    char *sx, *sy, *strncpy();    psetf = 1;                          /* Flag that prompt has been set. */    strncpy(cmprom,s,PROML - 1);        /* Copy the string. */    cmprom[PROML] = NUL;                /* Ensure null terminator. */    sx = cmprom; sy = cmerrp;           /* Also use as error message prefix. */    while (*sy++ = *sx++) ;             /* Copy. */    sy -= 2; if (*sy == '>') *sy = NUL; /* Delete any final '>'. */}/*  C M S A V P  --  Save a copy of the current prompt.  */cmsavp(s,n) int n; char s[]; {    extern char *strncpy();                                     /* +1   */    strncpy(s,cmprom,n-1);    s[n] = NUL;}/*  P R O M P T  --  Issue the program prompt.  */prompt() {    if (psetf == 0) cmsetp(dfprom);     /* If no prompt set, set default. */    printf2("\r%s",cmprom);             /* Print the prompt. */}/*  C M R E S  --  Reset pointers to beginning of command buffer.  */cmres() {    cc = 0;                             /* Reset character counter. */    pp = np = bp = cmdbuf;              /* Point to command buffer. */    cmflgs = -5;                        /* Parse not yet started. */}/*  C M I N I  --  Clear the command and atom buffers, reset pointers.  *//*The argument specifies who is to echo the user's typein --  1 means the cmd package echoes  0 somebody else (system, front end, terminal) echoes*/cmini(d) int d; {    for (bp = cmdbuf; bp < cmdbuf+CMDBL; bp++) *bp = NUL;    *atmbuf = NUL;    dpx = d;    cmres();}stripq(s) char *s; {                    /* Function to strip '\' quotes */    char *t;    while (*s) {        if (*s == '\\') {            for (t = s; *t != '\0'; t++) *t = *(t+1);        }        s++;    }}/*  C M N U M  --  Parse a number in the indicated radix  *//*  For now, only works for positive numbers in base 10.  *//* Returns   -3 if no input present when required,   -2 if user typed an illegal number,   -1 if reparse needed,    0 otherwise, with n set to number that was parsed*/cmnum(xhlp,xdef,radix,n) char *xhlp, *xdef; int radix, *n; {    int x; char *s;    if (radix != 10) {                  /* Just do base 10 for now */        printf2("cmnum: illegal radix - %d\n",radix);        return(-1);    }    x = cmfld(xhlp,xdef,&s);    debug(F101,"cmnum: cmfld","",x);    if (x < 0) return(x);    /* Parse a field */    if (digits(atmbuf)) {               /* Convert to number */        *n = atoi(atmbuf);        return(x);    } else {        printf2("\n?not a number - %s\n",s);        return(-2);    }}/*  C M O F I  --  Parse the name of an output file  *//* Depends on the external function zchko(); if zchko() not available, use cmfld() to parse output file names. Returns   -3 if no input present when required,   -2 if permission would be denied to create the file,   -1 if reparse needed,    0 or 1 otherwise, with xp pointing to name.*/cmofi(xhlp,xdef,xp) char *xhlp, *xdef, **xp; {    int x; char *s;    if (*xhlp == NUL) xhlp = "Output file";    *xp = "";    if ((x = cmfld(xhlp,xdef,&s)) < 0) return(x);    if (chkwld(s)) {        printf2("\n?Wildcards not allowed - %s\n",s);        return(-2);    }    if (zchko(s) < 0) {        printf2("\n?Write permission denied - %s\n",s);        return(-2);    } else {        *xp = s;        return(x);    }}/*  C M I F I  --  Parse the name of an existing file  *//* This function depends on the external functions:   zchki()  - Check if input file exists and is readable.   zxpand() - Expand a wild file specification into a list.   znext()  - Return next file name from list. If these functions aren't available, then use cmfld() to parse filenames.*//* Returns   -4 EOF   -3 if no input present when required,   -2 if file does not exist or is not readable,   -1 if reparse needed,    0 or 1 otherwise, with:        xp pointing to name,        wild = 1 if name contains '*' or '?', 0 otherwise.*/cmifi(xhlp,xdef,xp,wild) char *xhlp, *xdef, **xp; int *wild; {    int i, x, xc; long y; char *sp;    cc = xc = 0;                        /* Initialize counts & pointers */    *xp = "";    if ((x = cmflgs) != 1) {            /* Already confirmed? */        x = getwd();                    /* No, get a word */    } else {        cc = setatm(xdef);              /* If so, use default, if any. */    }    *xp = atmbuf;                       /* Point to result. */    *wild = chkwld(*xp);    while (1) {        xc += cc;                       /* Count the characters. */        debug(F111,"cmifi: getwd",atmbuf,xc);        switch (x) {            case -4:                    /* EOF */            case -2:                    /* Out of space. */            case -1:                    /* Reparse needed */                return(x);/* cont'd... *//* ...cmifi(), cont'd */            case 0:                     /* SP or NL */            case 1:                if (xc == 0) *xp = xdef;    /* If no input, return default. */                else *xp = atmbuf;                if (**xp == NUL) return(-3); /* If field empty, return -3. */                /* If filespec is wild, see if there are any matches */                *wild = chkwld(*xp);                debug(F101," *wild","",*wild);                if (*wild != 0) {                    y = zxpand(*xp);                    if (y == 0) {                        printf2("\n?No files match - %s\n",*xp);                        return(-2);                    } else if (y < 0) {                        printf2("\n?Too many files match - %s\n",*xp);                        return(-2);                    } else return(x);                }                /* If not wild, see if it exists and is readable. */                y = zchki(*xp);                if (y == -3) {                    printf2("\n?Read permission denied - %s\n",*xp);                    return(-2);                } else if (y == -2) {                    printf2("\n?File not readable - %s\n",*xp);                    return(-2);                } else if (y < 0) {                    printf2("\n?File not found - %s\n",*xp);                    return(-2);                }                return(x);/* cont'd... *//* ...cmifi(), cont'd */            case 2:                     /* ESC */                if (xc == 0) {                    if (*xdef != '\0') {                        printf2("%s ",xdef); /* If at beginning of field, */                        addbuf(xdef);   /* supply default. */                        cc = setatm(xdef);                    } else {            /* No default */                        putchar(BEL);                    }                    break;                }                if (*wild = chkwld(*xp)) {  /* No completion if wild */                    putchar(BEL);                    break;                }                sp = atmbuf + cc;                *sp++ = '*';                *sp-- = '\0';                y = zxpand(atmbuf);     /* Add * and expand list. */                *sp = '\0';             /* Remove *. */                if (y == 0) {                    printf2("\n?No files match - %s\n",atmbuf);                    return(-2);                } else if (y < 0) {                    printf2("\n?Too many files match - %s\n",atmbuf);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性做久久久久久免费观看| 中文字幕亚洲一区二区av在线| 久久人人爽爽爽人久久久| 亚洲日本一区二区| 久久国产精品99久久人人澡| 99国产精品久久久久久久久久久 | 精品国产乱子伦一区| 国产精品国模大尺度视频| 日韩国产一区二| 在线中文字幕一区二区| 国产亚洲美州欧州综合国| 天堂蜜桃91精品| 91搞黄在线观看| 亚洲精品成人在线| 国内精品伊人久久久久影院对白| 欧美性一区二区| **欧美大码日韩| 国产激情一区二区三区四区| 欧美一区二区三区在线电影| 亚洲欧美另类小说| 成人网男人的天堂| 久久久久久久久97黄色工厂| 欧美男男青年gay1069videost | 亚洲精品一二三四区| 狠狠色综合播放一区二区| 欧美日韩一区二区欧美激情| 亚洲天堂久久久久久久| 国内久久精品视频| 久久久久久久久久久久久女国产乱 | 欧美日韩在线播放一区| 一区二区在线观看视频| 91久久精品一区二区三区| 国产精品精品国产色婷婷| 国产成人啪免费观看软件| 久久无码av三级| 国产一区在线看| 精品美女一区二区| 韩国女主播一区| 欧美xfplay| 激情综合色播激情啊| 久久久久99精品一区| 国产99久久久精品| 国产精品电影一区二区三区| 99久久久免费精品国产一区二区 | 91精品国产综合久久福利| 亚洲成人一区二区| 欧美一区二区三区视频在线观看| 日韩电影在线观看电影| 中文字幕亚洲视频| 色综合久久综合| 伊人婷婷欧美激情| 欧美一区二区视频在线观看| 免费观看在线综合| 久久看人人爽人人| 色狠狠一区二区| 首页国产丝袜综合| 精品处破学生在线二十三| 国产成人av电影| 亚洲免费电影在线| 欧美一区二区三区视频免费播放| 国产一区中文字幕| 一区二区三区四区激情| 欧美剧在线免费观看网站| 精品亚洲欧美一区| 中文字幕在线一区| 7777精品久久久大香线蕉| 国产麻豆精品在线| 亚洲自拍另类综合| 久久―日本道色综合久久| 91免费看`日韩一区二区| 美女一区二区视频| 亚洲视频一区二区免费在线观看| 欧美一级在线观看| 91亚洲精品久久久蜜桃网站| 午夜在线成人av| 国产精品天干天干在线综合| 欧美日本在线视频| 成人免费av网站| 奇米影视一区二区三区小说| 日韩一区在线看| 日韩丝袜情趣美女图片| 色综合久久久久综合| 国产麻豆精品久久一二三| 亚洲制服欧美中文字幕中文字幕| 欧美成人艳星乳罩| 色偷偷一区二区三区| 国产自产v一区二区三区c| 亚洲动漫第一页| 蜜臀国产一区二区三区在线播放| 国产精品日韩精品欧美在线| 91精品国产黑色紧身裤美女| 色哟哟一区二区在线观看| 国产传媒一区在线| 另类欧美日韩国产在线| 亚洲国产你懂的| 亚洲免费在线电影| 国产校园另类小说区| 日韩精品一区国产麻豆| 欧美伦理影视网| 欧美综合天天夜夜久久| 99国产麻豆精品| 成人不卡免费av| 国产成人在线观看免费网站| 狠狠色综合播放一区二区| 日韩激情一二三区| 亚洲第一av色| 亚洲国产中文字幕在线视频综合| 中文字幕在线一区免费| 国产亚洲精品资源在线26u| xfplay精品久久| 欧美va日韩va| 精品国产成人在线影院| 日韩美女一区二区三区四区| 欧美一区二区三区视频在线| 欧美精品xxxxbbbb| 欧美喷潮久久久xxxxx| 欧美精品99久久久**| 91精品在线一区二区| 91精品国产品国语在线不卡| 日韩欧美在线1卡| 精品国产一区二区三区忘忧草| 日韩视频在线观看一区二区| 日韩亚洲欧美综合| 久久婷婷国产综合精品青草 | 欧美午夜片在线观看| 欧美亚一区二区| 欧美日韩亚洲综合一区| 欧美一区二区三区在线| www国产亚洲精品久久麻豆| 中文一区二区完整视频在线观看 | 欧美成人性福生活免费看| 精品捆绑美女sm三区| 日本一区二区三级电影在线观看| 国产精品理伦片| 亚洲激情中文1区| 日韩av中文字幕一区二区| 精品写真视频在线观看| 成人夜色视频网站在线观看| 99精品黄色片免费大全| 欧美影院一区二区三区| 日韩一级免费观看| 国产欧美日韩一区二区三区在线观看 | 成人动漫在线一区| 欧美三日本三级三级在线播放| 91精品国产综合久久久久久久久久| 欧美大肚乱孕交hd孕妇| 中文字幕高清不卡| 日韩精品一级中文字幕精品视频免费观看 | 久久精品噜噜噜成人av农村| 国产高清久久久久| 91美女片黄在线观看91美女| 欧美精品vⅰdeose4hd| 日本一区二区久久| 天堂精品中文字幕在线| 国产二区国产一区在线观看| 在线精品视频小说1| 精品少妇一区二区三区免费观看| 国产精品美女久久久久久| 婷婷成人综合网| 粉嫩av一区二区三区| 欧美剧在线免费观看网站| 亚洲国产精品传媒在线观看| 天天综合色天天| 99久久er热在这里只有精品15| 欧美高清一级片在线| 国产精品久久久久久福利一牛影视| 亚洲va韩国va欧美va精品| 东方aⅴ免费观看久久av| 欧美精品aⅴ在线视频| 日韩美女视频一区| 国产精品自在在线| 欧美一区二区人人喊爽| 亚洲精品高清在线观看| 国产精品456露脸| 欧美一级久久久| 香港成人在线视频| 一本一本久久a久久精品综合麻豆| 26uuu欧美| 老司机精品视频线观看86| 欧美系列在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 蜜臀av一级做a爰片久久| 欧美色欧美亚洲另类二区| 亚洲色图清纯唯美| 成人国产精品免费观看动漫 | 国产精品沙发午睡系列990531| 久久精品国产一区二区| 欧美精品高清视频| 午夜精品久久久久久久99樱桃| 一本一本大道香蕉久在线精品 | 蜜桃av一区二区| 欧美丰满嫩嫩电影| 三级久久三级久久| 91精品国产综合久久久蜜臀图片| 亚洲综合精品久久| 欧美午夜片在线观看| 亚洲精品欧美专区| 色av成人天堂桃色av| 亚洲人一二三区| 一本到不卡精品视频在线观看|