⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fifousr.c

📁 Source code for an Numeric Cmputer
💻 C
字号:
/*  fifousr.c - user-side FIFO code*/#include <stdio.h>#include <signal.h>#include <setjmp.h>#include <sys/time.h>#include "rtapi.h"#include "common.h"		/* FIFO_KEY, FIFO_SIZE */static int module;static jmp_buf env;static void quit(int sig){    longjmp(env, 1);}int main(){    int fifo;    char buffer[FIFO_SIZE + 1];    int nchars;    int retval;    module = rtapi_init("FIFO_USR");    if (module < 0) {	rtapi_print_msg(RTAPI_MSG_ERR,	    "fifousr main: rtapi_init returned %d\n", module);	return -1;    }    /* open the fifo */    fifo = rtapi_fifo_new(FIFO_KEY, module, FIFO_SIZE, 'R');    if (fifo < 0) {	rtapi_print_msg(RTAPI_MSG_ERR,	    "fifousr main: rtapi_fifo_new returned %d\n", fifo);	rtapi_exit(module);	return -1;    }    if (1 == setjmp(env))	goto END;    signal(SIGINT, quit);    printf("waiting for fifo data, ctrl-C to quit\n");    while (1) {	nchars = rtapi_fifo_read(fifo, buffer, FIFO_SIZE);	if (nchars <= 0) {	    rtapi_print_msg(RTAPI_MSG_ERR,		"fifousr main: rtapi_fifo_read returned %d\n", nchars);	} else {	    buffer[nchars] = '\0';	    rtapi_print_msg(RTAPI_MSG_INFO,		"fifousr main: read %d chars: '%s'\n", nchars, buffer);	}    }  END:    rtapi_print_msg(RTAPI_MSG_INFO, "shutting down\n");    retval = rtapi_fifo_delete(fifo, module);    if (retval != RTAPI_SUCCESS) {	rtapi_print_msg(RTAPI_MSG_ERR,	    "fifousr main: rtapi_fifo_delete returned %d\n", retval);	rtapi_exit(module);	return -1;    }    return rtapi_exit(module);}

⌨️ 快捷键说明

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