利用POSIX thread (pthread), 编一个message alarm程序。
通过stdin,以行为单位输入两个field,前者是数字(时间),后者是message.
实现流程是,经过第一个field时间后stdout第二个field信息。
处理流程不能间断,要连续进行。
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#define MaxBuffSize 50
struct t_arg {
unsigned int time;
char msg[MaxBuffSize];
};
// Thread function
void *msgServiceRoutine(void *arg)
{
struct t_arg tMsg;
tMsg.time = ((struct t_arg*)arg)->time;
strcpy(tMsg.msg, ((struct t_arg*)arg)->msg);
sleep(tMsg.time);
printf("MSG = '%s'/n", tMsg.msg);
}
void main()
{
pthread_t thread_t;
struct t_arg tMsg;
for(;;) {
scanf("%d %s",&tMsg.time, tMsg.msg);
pthread_create(&thread_t, NULL, msgServiceRoutine,&tMsg);
}
}