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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? gsmdevices.c

?? ~{JV;z6LO{O"7~Nq5D7~NqFw:M?M; 6K~}(linux~{#)~}
?? C
字號(hào):
/*========================================================== * Program : gsmdevices.c                  Project : smslink * Author  : Philippe Andersson. * Date    : 19/10/98 * Version : 0.01a * Notice  : Shamelessly copied from Riccardo Facchetti's modems.c *           in libmodem-1.0.0 (c) 1997 Riccardo Facchetti under GNU GPL. *           (c) Les Ateliers du Heron, 1998 for Scitex Europe, S.A. * Comment : Handling routines for /etc/gsmdevices database. * * Modification History : * - 0.01a (13/08/98) : Initial release. *========================================================*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <dial/modems.h>#include <dial/mdmerrno.h>#include <termios.h>#include "sms_serv.h"#define BUFSIZE		128static int gsmdeventry = 0;static FILE *gsmdevfp;/*========================================================*/static int open_gsmdevs (void)/* * open/close_gsmdevs: open and close the /etc/gsmdevices file */{    if ((gsmdevfp = fopen (GSMDEVFILE, "r")) == NULL)        return FAILURE;    return SUCCESS;}                                      /* open_gsmdevs () *//*========================================================*/static void close_gsmdevs (void){    fclose (gsmdevfp);}                                     /* close_gsmdevs () *//*========================================================*/struct gsms_def *getgsmdevbynam (char *line)/* * getgsmdevbynam: returns a pointer to the gsmdev entry named *            (char *) line, NULL if line is not present in *            /etc/gsmdevices. */{    static struct gsms_def mdm;    char *buffer;    buffer = mdmalloc(BUFSIZE);    if (!buffer) {	mdmerrno = -EMDMEM;	return NULL;    }    mdmerrno = 0;    if (open_gsmdevs() == FAILURE) {	mdmfree (buffer);        mdmerrno = -ENOMDMFILE;        return NULL;    }    while (fgets (buffer, BUFSIZE, gsmdevfp) != NULL) {        buffer[strlen (buffer) - 1] = '\0';        if (buffer[0] == '#' || buffer[0] == '\0' || buffer[0] == '\n')            continue;        if (demangle_gsmdev_entry (&mdm, buffer) == FAILURE) {            mdmerrno = -EMDMBADCONF;            continue;        }        if (!strcmp (mdm.device, line)) {            close_gsmdevs ();	    mdmfree (buffer);            return (&mdm);        }    }    close_gsmdevs ();    mdmerrno = -ENOMDMLINE;    return NULL;}                                    /* getgsmdevbynam () *//*========================================================*/int getgsmdevscount (int validation)/* * getgsmdevscount: count the number of valid (?) entries in *            /etc/gsmdevices. */{    static struct gsms_def mdm;    char *buffer;    int nvalidentries = 0;    buffer = mdmalloc(BUFSIZE);    if (!buffer) {	mdmerrno = -EMDMEM;	return (0);    }    mdmerrno = 0;    if (open_gsmdevs() == FAILURE) {	mdmfree (buffer);        mdmerrno = -ENOMDMFILE;        return (0);    }    while (fgets (buffer, BUFSIZE, gsmdevfp) != NULL) {        buffer[strlen (buffer) - 1] = '\0';        if (buffer[0] == '#' || buffer[0] == '\0' || buffer[0] == '\n')            continue;        if (validation && (demangle_gsmdev_entry (&mdm, buffer) == FAILURE)) {            mdmerrno = -EMDMBADCONF;            continue;        }	nvalidentries++;    }    close_gsmdevs ();    return (nvalidentries);}                                   /* getgsmdevscount () *//*========================================================*/void setgsmdevs (void)/* * setgsmdevs: set the library for modem sequential search from the first to the *          end. See getnextgsmdev (). */{    gsmdeventry = 0;}                                        /* setgsmdevs () *//*========================================================*/struct gsms_def *getnextgsmdev (void)/* * getnextgsmdev: get the next modem entry in /etc/gsmdevices *             file returns NULL if we are over the last entry. */{    static struct gsms_def mdm;    int i = 0;    char *buffer;    buffer = mdmalloc (BUFSIZE);    if (!buffer) {	mdmerrno = -EMDMEM;	return NULL;    }    mdmerrno = 0;    if (open_gsmdevs () == FAILURE) {	mdmfree (buffer);        mdmerrno = -ENOMDMFILE;        return NULL;    }    while (fgets (buffer, BUFSIZE, gsmdevfp) != NULL) {        buffer[strlen (buffer) - 1] = '\0';        if (buffer[0] == '#' || buffer[0] == '\0' || buffer[0] == '\n')            continue;        if (i == gsmdeventry) {            if (demangle_gsmdev_entry (&mdm, buffer) == FAILURE) {                mdmerrno = -EMDMBADCONF;                continue;            }            gsmdeventry++;            close_gsmdevs ();	    mdmfree (buffer);            return (&mdm);        }        i++;    }    close_gsmdevs ();    mdmfree(buffer);    return NULL;}                                     /* getnextgsmdev () *//*========================================================*/static int demangle_gsmdev_entry (struct gsms_def *mdm, char *mdmstr)/* * demangle_gsmdev_entry: get a gsmdev pointer that point to an existing * gsm_def structure and a string to demangle. Returns FAILURE or SUCCESS. * The buffer pointed to by mdmstr is modified in the process. */{    char *ptr, *pptr;    /*....................................mdm->free (int) */    /* is left uninitialized - dynamic data */        /*...............................mdm->device (char *) */    if ((ptr = strchr (mdmstr, ':')) == NULL)        return FAILURE;    *ptr = '\0';    if ((strlen (mdmstr) == 0) || (strlen (mdmstr) > MAXDEVLEN))        return (FAILURE);    strcpy (mdm->device, mdmstr);    ptr++;    /*..................................mdm->PIN (char *) */    if (*ptr == ':') {        /* empty field */        mdm->PIN[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > PINLEN)            return (FAILURE);	strcpy (mdm->PIN, ptr);        ptr = pptr + 1;    }    /*..................................mdm->PUK (char *) */    if (*ptr == ':') {        /* empty field */        mdm->PUK[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > PUKLEN)            return (FAILURE);        strcpy (mdm->PUK, ptr);        ptr = pptr + 1;    }    /*.................................mdm->addr (char *) */    if (*ptr == ':') {        /* empty field */        mdm->addr[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > MAXPHNUMLEN)            return (FAILURE);        strcpy (mdm->addr, ptr);        ptr = pptr + 1;    }    /*...............................mdm->defsca (char *) */    if (*ptr == ':') {        /* empty field */        mdm->defsca[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > MAXPHNUMLEN)            return (FAILURE);        strcpy (mdm->defsca, ptr);        ptr = pptr + 1;    }    /*.............................mdm->provider (char *) */    /*                                 !!! Last field !!! */    if (*ptr == '\n' || *ptr == '\0' || *ptr == ':') {        mdm->provider[0] = '\0';        return SUCCESS;    }    else        if (strlen (ptr) > MAXDEVLEN)            return (FAILURE);        strcpy (mdm->provider, ptr);    return SUCCESS;}                             /* demangle_gsmdev_entry () *//*========================================================== * EOF : gsmdevices.c *===================*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区免费视频| 国产自产v一区二区三区c| 国产美女主播视频一区| 亚洲色图视频免费播放| 国产成人精品免费| 国产午夜亚洲精品羞羞网站| 国产在线精品一区二区不卡了| 亚洲视频免费看| 久久亚洲一区二区三区明星换脸| 韩国v欧美v亚洲v日本v| 亚洲一区二区视频在线观看| 91久久免费观看| 亚洲人成人一区二区在线观看| 97se亚洲国产综合在线| 亚洲精品中文在线| 欧美一区二区视频免费观看| 久久99久久久久| 91精品办公室少妇高潮对白| 国产成人在线视频播放| 麻豆国产精品视频| 国产精品久久影院| 91成人在线精品| 99久久精品国产麻豆演员表| 国产成人鲁色资源国产91色综| 久久精品国产久精国产| 五月激情六月综合| 精品乱人伦小说| 国产成人在线看| 国产一区二区三区不卡在线观看 | 久久精品这里都是精品| 欧美一区二区福利在线| 欧美视频一区二区在线观看| 人人狠狠综合久久亚洲| 久久久久久久久久久久久女国产乱| 成人国产精品免费观看视频| 亚洲一区二区黄色| 夜夜嗨av一区二区三区四季av| 日韩美女天天操| 91在线看国产| 99精品在线观看视频| 成人av电影在线网| 99久久99久久久精品齐齐| 99亚偷拍自图区亚洲| 免播放器亚洲一区| 麻豆国产91在线播放| 激情图区综合网| 国产成人免费av在线| 成人国产精品免费观看| av午夜精品一区二区三区| 99久久国产综合色|国产精品| 91在线播放网址| 国产乱码精品一区二区三区av| 亚洲曰韩产成在线| 亚洲国产精品久久久男人的天堂| 国产欧美日韩另类一区| 日韩三级高清在线| 欧美日韩国产免费一区二区| 国产经典欧美精品| 99视频超级精品| 色美美综合视频| 国内精品自线一区二区三区视频| 国产精品18久久久| 91蝌蚪porny九色| 欧美日韩国产中文| 精品国产露脸精彩对白 | 久久久久久久久97黄色工厂| 国产亚洲一区二区三区在线观看| 中文字幕 久热精品 视频在线| 欧美电影免费提供在线观看| 久久精品视频一区二区三区| 国产精品久久久久永久免费观看| 亚洲精选免费视频| 另类人妖一区二区av| 成人激情黄色小说| 3d动漫精品啪啪一区二区竹菊| 欧美在线小视频| 色综合久久六月婷婷中文字幕| 欧美日韩第一区日日骚| 欧美变态tickle挠乳网站| 中文字幕乱码日本亚洲一区二区| 一区二区日韩电影| 国产乱码精品一区二区三区忘忧草 | 欧美在线视频不卡| 久久在线观看免费| 一区二区三区在线观看国产| 捆绑调教一区二区三区| 一本大道久久a久久精品综合 | 国产精品久久99| 五月婷婷激情综合| 99久久综合色| 欧美videos中文字幕| 亚洲夂夂婷婷色拍ww47| 国产一区二区三区美女| 欧美吻胸吃奶大尺度电影| 日本一区二区免费在线观看视频| 亚洲电影一级片| 亚洲第一久久影院| 国产二区国产一区在线观看| 欧美日韩国产区一| 国产精品白丝在线| 国产在线播放一区| 欧美一区二区三区播放老司机| 国产精品国产三级国产aⅴ入口| 免费成人你懂的| 欧美日韩久久一区| 亚洲日本丝袜连裤袜办公室| 国产原创一区二区三区| 欧美丰满一区二区免费视频 | 久久美女艺术照精彩视频福利播放| 一区二区三区在线免费观看| 国产精品综合二区| 日韩欧美aaaaaa| 天堂成人国产精品一区| 国产一区欧美二区| 欧美精品自拍偷拍动漫精品| 亚洲欧美国产高清| 不卡电影免费在线播放一区| 精品国产91洋老外米糕| 日韩一区欧美二区| 91成人在线精品| 亚洲狠狠丁香婷婷综合久久久| 成人性生交大片免费看中文| 欧美伊人久久大香线蕉综合69| 国产精品女主播在线观看| 亚洲综合999| 91天堂素人约啪| 国产精品网站导航| 国产精华液一区二区三区| 精品成人私密视频| 精品制服美女丁香| 日韩一区二区免费电影| 日本成人在线一区| 色噜噜偷拍精品综合在线| 国产精品国产自产拍高清av | 欧美一区二区三区思思人| 午夜一区二区三区视频| 欧美在线一区二区| 亚洲一本大道在线| 欧美色图天堂网| 久久免费精品国产久精品久久久久 | 日韩一区二区三区免费看| 婷婷成人激情在线网| 欧美高清视频在线高清观看mv色露露十八 | 国产成人av一区二区三区在线| 久久综合av免费| 国产成人综合在线播放| 国产精品久久久久久亚洲伦| 91在线无精精品入口| 亚洲综合色视频| 欧美日韩国产小视频| 免费在线观看一区| 久久久久久一级片| 99视频有精品| 一级精品视频在线观看宜春院 | 奇米四色…亚洲| 久久伊99综合婷婷久久伊| 国产盗摄女厕一区二区三区| 国产精品丝袜91| 色综合久久中文字幕综合网 | av电影在线不卡| 一区二区三区中文在线观看| 欧美三级在线视频| 奇米影视在线99精品| 久久男人中文字幕资源站| 99久久免费国产| 亚洲成人黄色影院| 久久一区二区视频| 99久久精品国产观看| 亚洲不卡av一区二区三区| 精品久久久久一区二区国产| 国产乱码字幕精品高清av| 亚洲丝袜美腿综合| 91精品国产综合久久久久久久 | 欧美日本一区二区在线观看| 久久99久久精品欧美| ...中文天堂在线一区| 岛国精品一区二区| 亚洲一区在线观看免费 | 国产精品99久久久久久似苏梦涵| 亚洲欧洲在线观看av| 4438x亚洲最大成人网| 懂色av噜噜一区二区三区av| 欧美韩日一区二区三区四区| 日本韩国欧美国产| 国产自产2019最新不卡| 亚洲制服丝袜一区| 国产亚洲午夜高清国产拍精品| 在线精品视频小说1| 国产一区久久久| 亚洲h在线观看| 亚洲欧洲精品天堂一级| 日韩欧美一区中文| 色视频一区二区| 丰满白嫩尤物一区二区| 蜜桃av一区二区三区电影| 亚洲女人的天堂| 久久久久久免费| 91精品国产91久久久久久最新毛片 | 国产精品一级黄| 喷水一区二区三区|