timedgetchar.c

来自「TCP-IP红宝书源代码」· C语言 代码 · 共 43 行

C
43
字号
#include <kernel.h>
#include <conf.h>
#include <io.h>

int sleeper(), reader();
extern int pids, pidr;

#define WAKEUP -1

timedgetchar(howlong)
     int howlong;
{
    STATWORD ps;
    int ret;

    recvclr();
    resume(pids = create(sleeper,200,20,"sleeper",2,getpid(),howlong));
    resume(pidr = create(reader,200,20,"reader",1,getpid()));
    disable(ps);
    ret = receive();
    kill(pidr);
    kill(pids);
    pidr = pids = 0;
    restore(ps);
    return(ret);
}


sleeper(pid,count)
     int pid;
     int count;
{
    sleep10(count);
    send(pid,WAKEUP);
}


reader(pid)
     int pid;
{
    send(pid,getchar());
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?