亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
99久久精品免费看| 国产在线不卡视频| 麻豆精品久久精品色综合| 国产福利一区二区三区在线视频| 欧洲亚洲国产日韩| 亚洲国产精品精华液2区45| 亚洲一区二区三区四区在线观看| 久久久精品一品道一区| 亚洲精品美腿丝袜| 国产乱码精品1区2区3区| 欧美三区在线视频| 亚洲欧洲成人自拍| 国产精品主播直播| 日韩亚洲国产中文字幕欧美| 亚洲综合无码一区二区| av不卡免费电影| 国产视频911| 久久国产精品区| 欧美日韩国产高清一区| 亚洲视频综合在线| 不卡一区二区三区四区| 久久在线观看免费| 琪琪久久久久日韩精品| 欧美电影影音先锋| 亚洲国产va精品久久久不卡综合| 成人午夜精品在线| 国产午夜亚洲精品羞羞网站| 韩国av一区二区三区在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 国产亚洲自拍一区| 蜜桃视频一区二区| 日韩精品一区二区在线| 日本成人中文字幕在线视频| 91精品国产色综合久久久蜜香臀| 亚洲成a人在线观看| 欧洲精品中文字幕| 亚洲成人黄色小说| 欧美日韩国产成人在线91| 亚洲国产欧美日韩另类综合 | 九色综合狠狠综合久久| 日韩欧美一级片| 九九九久久久精品| 久久影视一区二区| 国产成人免费在线视频| 国产日韩在线不卡| caoporm超碰国产精品| 综合久久一区二区三区| 色综合色综合色综合色综合色综合| 国产精品久久久久一区二区三区| 99热99精品| 亚洲在线视频免费观看| 欧美一区午夜视频在线观看| 男女男精品视频| 国产区在线观看成人精品| 99久久精品免费看国产| 亚洲国产精品久久久男人的天堂| 91麻豆精品国产自产在线| 精品无人码麻豆乱码1区2区| 日本一区二区三区在线观看| 94-欧美-setu| 麻豆传媒一区二区三区| 中文字幕免费一区| 欧美性感一区二区三区| 蜜臀久久99精品久久久画质超高清| 久久伊人中文字幕| 在线观看亚洲a| 国产在线乱码一区二区三区| 亚洲日本在线视频观看| 欧美一区二区三区啪啪| hitomi一区二区三区精品| 亚洲高清在线精品| 26uuu国产在线精品一区二区| 不卡一区二区中文字幕| 婷婷国产在线综合| 国产欧美日韩中文久久| 欧美日韩你懂得| 国产乱色国产精品免费视频| 亚洲免费在线视频一区 二区| 亚洲精品老司机| 一区二区三区高清| 91精品在线麻豆| 成人精品免费看| 午夜精品久久久久久久99水蜜桃| 国产亚洲精品免费| 91精品福利在线一区二区三区| a级精品国产片在线观看| 天堂蜜桃91精品| 国产精品久久久久久久久搜平片 | 日韩欧美一区二区久久婷婷| www.在线成人| 精品一区二区三区在线视频| 亚洲午夜久久久久久久久电影网| 精品va天堂亚洲国产| 欧美日韩成人综合天天影院 | 91麻豆精品国产无毒不卡在线观看| 成人丝袜高跟foot| 国产一区欧美日韩| 91在线观看免费视频| 久久欧美一区二区| 欧美探花视频资源| 成人在线综合网站| 国产精品影音先锋| 蜜臀久久久久久久| 日韩精品久久理论片| 亚洲制服丝袜av| 亚洲精品乱码久久久久| 日韩久久一区二区| 自拍偷拍亚洲综合| 中文一区在线播放| 久久亚洲私人国产精品va媚药| 日韩视频免费观看高清完整版在线观看 | 婷婷夜色潮精品综合在线| 国产精品久久久久久久久久久免费看| 久久精品一区二区三区av| www激情久久| 精品国产免费久久| 欧美哺乳videos| 精品国产凹凸成av人网站| 日韩免费在线观看| 日韩精品专区在线影院观看| 欧美xxxx在线观看| 久久综合视频网| 国产午夜精品在线观看| 久久久99精品免费观看| 国产精品乱人伦| 中文字幕日韩精品一区| 亚洲精品免费在线观看| 午夜精品一区二区三区三上悠亚| 首页国产欧美久久| 另类的小说在线视频另类成人小视频在线 | 国产精品久久久久久一区二区三区| 亚洲国产精品二十页| 亚洲视频免费在线| 亚洲国产精品自拍| 蜜桃av一区二区在线观看 | 日韩精品久久理论片| 老司机精品视频一区二区三区| 国产一区激情在线| 成人网男人的天堂| 欧美日韩综合在线| 欧美白人最猛性xxxxx69交| 日本一区免费视频| 尤物视频一区二区| 老司机午夜精品| 成人精品电影在线观看| 在线精品视频免费观看| 欧美大片一区二区| 国产精品二三区| 丝袜美腿亚洲综合| 国产精品综合视频| 欧洲人成人精品| 91视视频在线观看入口直接观看www| www.亚洲精品| 欧美人与z0zoxxxx视频| 久久这里都是精品| 亚洲一区二区三区激情| 精品写真视频在线观看| 91污在线观看| 欧美成人在线直播| 有坂深雪av一区二区精品| 极品瑜伽女神91| 欧美日韩亚洲综合一区| www久久精品| 日韩黄色片在线观看| 99久久er热在这里只有精品15| 91精品国产综合久久久久久| 中文字幕av一区二区三区免费看 | 国产精品美日韩| 婷婷成人激情在线网| 成人ar影院免费观看视频| 91精品一区二区三区久久久久久| 亚洲欧美综合另类在线卡通| 久久精品999| 在线不卡一区二区| 中文字幕一区二区三区在线观看| 免费国产亚洲视频| 欧美日免费三级在线| 亚洲视频在线一区二区| 国产美女久久久久| 欧美xxxxx裸体时装秀| 亚洲成人黄色影院| 91福利国产成人精品照片| 国产精品久久久久久户外露出 | 欧美一区永久视频免费观看| 一区二区三区在线免费视频| 成人国产在线观看| 久久精品视频网| 久国产精品韩国三级视频| 欧美日韩一区国产| 亚洲激情自拍偷拍| 色婷婷精品久久二区二区蜜臂av | 亚洲品质自拍视频网站| 成人深夜福利app| 久久久国际精品| 国产乱码精品1区2区3区| 久久综合一区二区| 国产老妇另类xxxxx| 久久一夜天堂av一区二区三区| 全国精品久久少妇| 日韩一区二区三区四区五区六区|