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

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

?? waitdisp.c

?? 想學linux中的motif編程
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>#include <unistd.h>#include <signal.h>#include <errno.h>//KEC#include <varargs.h>//KEC#include <stdarg.h>#include <X11/Xatom.h>#include "system.h"#include "kyotu_t.h"#include "kyotu_s.h"/*-------------------------------------------------------------------*/#define  DEBUG            0#define  INTERVAL      500L            /* タイマ粗持(ミリ擅帽疤∷    */#define  WAITOUT          0#define  FORK_TASKNAM  "FORK_TASKNAM"#define  PPID_CHECK    "PPID_CHECK"/*-------------------------------------------------------------------*/extern int  errno;extern char *sys_errlist[];char  work[MAXPATHLEN];void  recv_proc();void  work_proc();void  chld_end();void  quit();struct _replace {                      /* デ〖タ構糠覺斗チェック脫   */    int    flg;    pid_t  pid;};struct _evt_tbl {    int      type;                     /* 鹼侍∈山績妥滇】久殿妥滇∷ */    pid_t    ppid;                     /* 妥滇傅pid               */    Display  *dpy;                     /* 妥滇傅ディスプレイ         */    Window   win;                      /* 妥滇傅ウィンドウID       */    char     msg[MAX_MSG];             /* メッセ〖ジ                 */};struct _inf_default {                  /* 瘦賂脫デフォルトデ〖タ     */                                       /* 彈瓢妥滇により彈瓢されるタ */    char fork_tasknam[256];            /* スク                       */                                       /* 山績妥滇傅と久殿妥滇傅のチ */    int  ppid_check;                   /* ェックフラグ               */};struct _default_tbl {    int      type;                     /* デフォルトデ〖タタイプ     */                                       /*   0:char  1:int  2:float   */    char     *name;                    /* 嘆疚コ〖ド                 */    char     *data;                    /* デフォルト脫デ〖タ         */};Display  *dpy;XtIntervalId  interval_id;XtAppContext  appcon;Widget  topshell;Widget  form, rc;Widget  label, text;Widget  pb[8];Widget  waitout = NULL;Arg     args[32];static int  wait_num = 0;static int  evt_num = 0;static int  ppid_check = 0;struct _waitdisp  *waitdisp = NULL;static struct _evt_tbl   *evt_tbl = NULL;static struct _replace  replace = { False, 0 };static struct _inf_default  inf_default;                                       /* 茨董肋年デ〖タ艱評脫       */static struct _default_tbl  default_tbl[] = {    { 0, FORK_TASKNAM, NULL },    { 1, PPID_CHECK,   NULL },    {-1, (char*)NULL   , NULL }};/*-------------------------------------------------------------------*/main(argc, argv)int argc;char  **argv;{    Atom    window_id;    Window   win[1];/*-------------------------------------------------------------------*/    setlocale(LC_ALL,"");    XtSetLanguageProc(NULL,(XtLanguageProc)NULL,NULL);    signal(SIGCHLD, chld_end);         /* 灰タスク姜位箕借妄判峽     */    read_defaultdata();                /* デフォルト攫鼠艱評         */    get_defaultdata(FORK_TASKNAM, inf_default.fork_tasknam);    get_defaultdata(PPID_CHECK, &inf_default.ppid_check);#if DEBUG    printf("デフォルトデ〖タ肋年柒推\n");    printf("%s:%s\n", FORK_TASKNAM, inf_default.fork_tasknam);    printf("%s:%d\n", PPID_CHECK, inf_default.ppid_check);#endif    topshell = XtAppInitialize(&appcon, "Wait", NULL, 0,                                     &argc, argv, NULL, NULL, 0);    create_win(topshell);                                       /* イベントハンドラ判峽       */    XtAddEventHandler(label, NoEventMask, True, recv_proc, NULL);    XtRealizeWidget(topshell);                                       /* イベント減慨脫デ〖タ肋年   */    dpy = XtDisplay(label);    win[0] = XtWindow(label);    window_id = XInternAtom(dpy, "__WAITDISP", False);    XChangeProperty(dpy, RootWindow(dpy, 0),                    window_id, XA_WINDOW, 32, PropModeReplace, win, 1);/*    while(1) {        if (XtAppPending(appcon)) {            XtAppProcessEvent(appcon, XtIMAll);            XSync(dpy, 0);        } else  {            work_proc();        }    }*/    interval_id = XtAppAddTimeOut(appcon, 1000L, work_proc, label);    XtAppMainLoop(appcon);}int create_win(shell)Widget  shell;{    int  n;    int  decor = 0;    XmString  mstr;    void  button_callbk();/*-------------------------------------------------------------------*/    decor |= MWM_DECOR_BORDER;    decor |= MWM_DECOR_TITLE;    decor |= MWM_DECOR_MAXIMIZE;    decor |= MWM_DECOR_MINIMIZE;    XtVaSetValues(shell, XmNmwmDecorations, decor, NULL);    n = 0;    XtSetArg(args[n], XmNmarginWidth, 0); n++;    XtSetArg(args[n], XmNmarginHeight, 0); n++;    XtSetArg(args[n], XmNresizePolicy, XmRESIZE_ANY); n++;    form = XmCreateForm(shell, "form", args, n);    XtManageChild(form);    n = 0;    mstr = XmStringCreateLtoR("メッセ〖ジ", XmSTRING_DEFAULT_CHARSET);    XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNlabelString, mstr); n++;    label = XmCreateLabel(form, "lbl", args, n);    XtManageChild(label);    XmStringFree(mstr);    n = 0;    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;    XtSetArg(args[n], XmNtopWidget, label); n++;    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++;    rc = XmCreateRowColumn(form, "rc", args, n);    XtManageChild(rc);    n = 0;    XtSetArg(args[n], XmNtraversalOn, False); n++;    pb[0] = XmCreatePushButtonGadget(rc, "メッセ〖ジ久殿", args, n);    XtAddCallback(pb[0], XmNactivateCallback, button_callbk, 0);    XtManageChild(pb[0]);/** 姜位ボタンは山績しない    n = 0;    XtSetArg(args[n], XmNtraversalOn, False); n++;    pb[1] = XmCreatePushButtonGadget(rc, "Waitdisp姜位", args, n);    XtAddCallback(pb[1], XmNactivateCallback, button_callbk, 1);    XtManageChild(pb[1]);**/    n = 0;    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;    XtSetArg(args[n], XmNtopWidget, rc); n++;    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;    XtSetArg(args[n], XmNrows, 6); n++;    XtSetArg(args[n], XmNcolumns, 20); n++;    XtSetArg(args[n], XmNeditable, False); n++;    XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;    XtSetArg(args[n], XmNwordWrap, True); n++;    XtSetArg(args[n], XmNscrollHorizontal, False); n++;    XtSetArg(args[n], XmNblinkRate, 0); n++;    XtSetArg(args[n], XmNautoShowCursorPosition, True); n++;    XtSetArg(args[n], XmNcursorPositionVisible, False); n++;    text = XmCreateScrolledText(form, "text_w", args, n);    XtManageChild(text);    if (WAITOUT) {                     /* メッセ〖ジ叫蝸黎肋年       */        waitout = text;    } else  {        waitout = NULL;    }}void button_callbk(w, btn_no, cbs)Widget  w;int     btn_no;XmAnyCallbackStruct  *cbs;{/*-------------------------------------------------------------------*/    switch(btn_no) {        case  0:            XmTextSetString(text, NULL);            break;        case  1:            quit();            break;    }}void recv_proc(w, client, event)Widget  w;caddr_t  client;XClientMessageEvent   *event;{    int  sts = ABNORMAL;    Atom   disp_on, disp_off, disp_kill;    struct _waitdisp  data;/*-------------------------------------------------------------------*/    if (event != NULL) {                                       /* ClientMessage が流られてき */                                       /* た眷圭                     */        if (event->type == ClientMessage) {            SUB_wsprint(waitout, "イベント減慨  流慨傅pid=%d\n",                                            event->data.l[0]);                                       /* 山績妥滇、久殿妥滇、茶燙か */                                       /* らの動擴姜位のイベントチェ */                                       /* ック脫デ〖タ侯喇           */            disp_on   = XInternAtom(dpy, "__WAITDISP_ON", False);            disp_off  = XInternAtom(dpy, "__WAITDISP_OFF", False);            disp_kill = XInternAtom(dpy, "__WAITDISP_KILL", False);                                       /* 山績妥滇、久殿妥滇、茶燙か */                                       /* らの動擴姜位のイベントの眷 */                                       /* 圭                         */            if (event->message_type == disp_on ||                event->message_type == disp_off ||                event->message_type == disp_kill) {                                       /* 流られてきたイベントを瘦賂 */                evt_tbl = (struct _evt_tbl*)XtRealloc(evt_tbl,                          sizeof(struct _evt_tbl) * (evt_num + 1));                                       /* 茶燙山績妥滇               */                if (event->message_type == disp_on) {                    SUB_wsprint(waitout, "茶燙山績妥滇減慨\n");                    evt_tbl[evt_num].type = 1;                                       /* 茶燙久殿妥滇               */                } else  if (event->message_type == disp_off) {                    SUB_wsprint(waitout, "茶燙久殿妥滇減慨\n");                    evt_tbl[evt_num].type = 2;                } else  {              /* 茶燙動擴姜位妥滇           */                    SUB_wsprint(waitout, "茶燙動擴姜位妥滇減慨\n");                    evt_tbl[evt_num].type = 3;                }                evt_tbl[evt_num].ppid = (pid_t)event->data.l[0];                evt_tbl[evt_num].dpy  = (Display*)event->data.l[1];                evt_tbl[evt_num].win  = (Window)event->data.l[2];                                       /* 茶燙山績妥滇の眷圭         */                if (evt_tbl[evt_num].type == 1) {                                       /* 瓷妄脫デ〖タファイルから山 */                                       /* 績するデ〖タを粕み哈む     */                    sts = getdata(evt_tbl[evt_num].ppid, &data);                    if (sts != NORMAL) {                        SUB_wsprint(waitout, "々々々々\n");                    }                    strcpy(evt_tbl[evt_num].msg, data.msg);                } else  {                    evt_tbl[evt_num].msg[0] = 0;                }                evt_num ++;                XFlush(XtDisplay(topshell));            } else  {                SUB_wsprint(waitout, "waitdisp:message_type 稍賴\n");            }        }    }}void work_proc(w)Widget  w;{    int   sts = ABNORMAL;    int   idx;    struct _waitdisp  data;    struct _evt_tbl   area;/*-------------------------------------------------------------------*//*printf("******* work_proc() *******\n");*/                                       /* イベントが瘦賂されている眷 */    if (evt_num > 0) {                 /* 圭                         */                                       /* 辦戎黎片のイベント攫鼠艱評 */        memcpy(&area, &evt_tbl[0], sizeof(struct _evt_tbl));                                       /* 2戎謄笆慣のイベント攫鼠を */                                       /* 1つづつずらす             */        for(idx = 0;idx < evt_num - 1;idx++) {            memcpy(&evt_tbl[idx], &evt_tbl[idx+1],                                     sizeof(struct _evt_tbl));        }        evt_num --;                                       /* イベント攫鼠撾拌を浩刨澄瘦 */        evt_tbl = (struct _evt_tbl*)XtRealloc(evt_tbl,                                  sizeof(struct _evt_tbl) * evt_num);        if (area.type == 1) {          /* 茶燙山績妥滇の眷圭         */            for(idx = 0;idx < wait_num;idx++) {                                       /* 妥滇傅のpidの辦米するデ */                                       /* 〖タが肋年されている眷圭   */                if (waitdisp[idx].ppid == area.ppid ||                    inf_default.ppid_check == 0) {                                       /* 茶燙彈瓢面∈山績面∷の眷圭 */                    if (waitdisp[idx].pid > 0) {                                       /* 茶燙久殿妥滇               */                        wait_disp_off(waitdisp[idx].pid);                        idx = wait_num;                    }                    break;                }            }                                       /* 彈瓢覺斗デ〖タに踏判峽の眷 */            if (idx >= wait_num) {     /* 圭                         */                                       /* 彈瓢覺斗デ〖タに糠しく判峽 */                waitdisp = (struct _waitdisp*)XtRealloc(waitdisp,                            sizeof(struct _waitdisp) * (wait_num + 1));                                       /* 介袋猛肋年                 */                waitdisp[idx].pid = INITIAL;                waitdisp[idx].ppid = area.ppid;                wait_num ++;            }            strcpy(waitdisp[idx].msg, area.msg);                                       /* 茶燙山績妥滇               */            wait_disp_on(&waitdisp[idx].pid, waitdisp[idx].msg);#if DEBUG            SUB_wsprint(waitout, "pid=%d\n", waitdisp[idx].pid);#endif        } else  if (area.type == 2) {  /* 茶燙久殿妥滇の眷圭         */            for(idx = 0;idx < wait_num;idx++) {                if (waitdisp[idx].ppid == area.ppid ||                    inf_default.ppid_check == 0) {                                       /* 茶燙久殿妥滇               */                    wait_disp_off(waitdisp[idx].pid);                    idx = wait_num - 1;                    break;                }            }            if (idx >= wait_num) {                SUB_wsprint(waitout, "久殿妥滇傅pid[%d] 佰撅\n",                                                       area.ppid);            }        } else  if (area.type == 3) {  /* 茶燙からの動擴姜位         */            wait_disp_off(area.ppid);        }    }    interval_id = XtAppAddTimeOut(appcon, 1000L, work_proc, w);}static int wait_disp_on(pid, msg)pid_t  *pid;char   *msg;{    int  sts = ABNORMAL;    int  n;    char *p;    char  buff[MAX_MSG];/*-------------------------------------------------------------------*/    *pid = INITIAL;    if (msg != NULL) {                 /* メッセ〖ジ矢機誤肋年       */        strncpy(buff, msg, MAX_MSG);        buff[MAX_MSG-1] = '\0';    } else  {        strcpy(buff, "略ち。");    }    n = 0;    for(p = buff;*p != NULL;p++) {     /* 猖乖コ〖ド猴近             */        if (*p == 0x0a) {            continue;        }        buff[n++] = *p;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲在线中文字幕| 日本aⅴ亚洲精品中文乱码| 亚洲免费在线视频一区 二区| 婷婷六月综合亚洲| 国产福利精品一区二区| 欧美日韩在线三区| 国产精品看片你懂得| 日本一区二区三区dvd视频在线| 国产精品福利一区二区三区| 久久电影国产免费久久电影| 色欧美片视频在线观看在线视频| 国产精品亚洲专一区二区三区| 欧美在线视频全部完| 久久精品无码一区二区三区| 日本成人在线不卡视频| 欧美亚洲另类激情小说| 亚洲三级在线免费观看| 国产精品一区二区久激情瑜伽| 欧美精品黑人性xxxx| 一区2区3区在线看| 97国产精品videossex| 国产情人综合久久777777| 欧美aⅴ一区二区三区视频| 欧美曰成人黄网| 亚洲人成网站在线| 91蜜桃免费观看视频| 中文字幕av在线一区二区三区| 久久福利资源站| 欧美成人伊人久久综合网| 日韩精品成人一区二区三区 | 美女在线观看视频一区二区| 99精品国产91久久久久久| 日韩精品一区第一页| 2021国产精品久久精品| 久久疯狂做爰流白浆xx| 日韩免费观看高清完整版 | 亚洲丝袜精品丝袜在线| av在线一区二区| 亚洲精品成人少妇| 色播五月激情综合网| 亚洲国产va精品久久久不卡综合| 精品婷婷伊人一区三区三| 亚洲成人在线网站| 91精品国产入口| 美国毛片一区二区| 国产欧美一区二区精品性| 国产91丝袜在线18| 亚洲精品第一国产综合野| 欧美人与z0zoxxxx视频| 麻豆久久一区二区| 国产欧美日韩精品在线| av欧美精品.com| 亚洲动漫第一页| 欧美成人女星排名| 99久久99久久精品国产片果冻| 亚洲美女偷拍久久| 91 com成人网| 国产精品一区二区视频| 亚洲欧美aⅴ...| 91精品国产乱| 成人黄色小视频| 国产美女视频91| 日韩视频在线你懂得| 国产精品一区不卡| 一区av在线播放| 国产三级三级三级精品8ⅰ区| 91免费版在线| 精品一区二区在线观看| 亚洲人精品一区| 精品成人一区二区三区四区| 91蜜桃免费观看视频| 精品在线一区二区| 亚洲一区二区三区视频在线播放| 精品少妇一区二区三区日产乱码| 99久久婷婷国产| 美腿丝袜亚洲综合| 亚洲一二三级电影| 欧美国产禁国产网站cc| 欧美成人一区二区| 在线观看日韩高清av| 精品无码三级在线观看视频| 亚洲精品欧美二区三区中文字幕| 2017欧美狠狠色| 欧美日韩专区在线| av中文字幕不卡| 激情久久五月天| 午夜精品福利在线| 亚洲猫色日本管| **网站欧美大片在线观看| 精品国精品自拍自在线| 欧美人与性动xxxx| 欧美日精品一区视频| 色偷偷久久人人79超碰人人澡| 国产伦精一区二区三区| 蜜臀久久久久久久| 亚洲永久精品大片| 中文字幕一区二区三区视频| 久久综合精品国产一区二区三区| 这里只有精品99re| 欧美日本国产视频| 欧美放荡的少妇| 精品污污网站免费看| 在线精品视频一区二区三四| 成人aa视频在线观看| 成人国产精品免费观看视频| 国产精品正在播放| 国产精品夜夜爽| 国产福利一区在线观看| 国产一区二区三区不卡在线观看 | 亚洲精品国产品国语在线app| 久久久久久免费网| 久久综合网色—综合色88| 欧美不卡一区二区三区四区| 欧美一级淫片007| 欧美不卡一区二区三区四区| 精品国产不卡一区二区三区| 日韩亚洲欧美成人一区| 欧美高清视频在线高清观看mv色露露十八 | 色综合一个色综合亚洲| av电影在线不卡| 日韩欧美国产综合一区 | 综合激情成人伊人| 国产精品日日摸夜夜摸av| 中文字幕电影一区| 亚洲三级在线免费观看| 亚洲自拍与偷拍| 日韩精品欧美精品| 精品一区二区免费视频| 国产精品99久久久久久有的能看| 国产在线精品一区在线观看麻豆| 国模少妇一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 国产激情91久久精品导航| caoporm超碰国产精品| 91精品国产91综合久久蜜臀| 日本成人在线不卡视频| 狠狠狠色丁香婷婷综合久久五月| 国产美女娇喘av呻吟久久| 成人国产精品免费观看动漫| 在线观看欧美日本| 日韩欧美亚洲另类制服综合在线| 久久久综合网站| 亚洲老妇xxxxxx| 久草这里只有精品视频| 成人性生交大合| 欧美日本一区二区三区四区| 精品国产乱码久久久久久夜甘婷婷 | 日韩码欧中文字| 日本女优在线视频一区二区| 国产福利不卡视频| 欧美一a一片一级一片| 精品少妇一区二区三区日产乱码 | 国产精品不卡视频| 亚洲成av人片在线观看无码| 国产真实乱偷精品视频免| 91免费版在线| 久久久久国产精品麻豆ai换脸| 中文字幕一区二区在线观看| 美日韩一区二区| 在线看国产日韩| 中文字幕乱码日本亚洲一区二区 | 亚洲乱码国产乱码精品精可以看| 午夜精品久久久久久久| 成人av先锋影音| 精品黑人一区二区三区久久| 亚洲一区二区美女| 成人av动漫网站| 久久老女人爱爱| 日韩精品国产精品| 在线观看网站黄不卡| 国产精品美女久久久久久久久久久| 丝袜亚洲另类丝袜在线| 91热门视频在线观看| 久久久国产午夜精品| 丝袜诱惑制服诱惑色一区在线观看| 91丨porny丨最新| 欧美国产禁国产网站cc| 国内成人精品2018免费看| 欧美日韩视频不卡| 一区二区三区欧美视频| 99久久伊人久久99| 欧美国产日韩精品免费观看| 欧美精品成人一区二区三区四区| 欧美午夜精品一区二区三区 | 成人国产在线观看| 精品国产一区久久| 三级成人在线视频| 欧美日韩一区二区三区免费看| 国产女主播一区| 国产成人免费视频网站高清观看视频 | 欧美日韩成人综合天天影院| 亚洲日本中文字幕区| 成人免费视频免费观看| 久久精品亚洲乱码伦伦中文| 另类的小说在线视频另类成人小视频在线 | 日韩精品一二三四| 欧美日韩亚洲综合在线| 亚洲国产中文字幕在线视频综合| 91影院在线观看| 日韩av网站免费在线|