参考例子:QNX® Software Development Platform 6.6 .6.0_anm11_wf10/#com.qnx.doc.pps.developer/topic/examples.html
//subscriber/main.cpp
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>int main(int argc, char *argv[])
{int fd;char buf[256];int num_bytes;fd = open( "/pps/button?wait,delta", O_RDONLY );if ( fd < 0 ){perror ("Couldn't open /pps/button");return EXIT_FAILURE;}/* Loop, echoing the attributes of the button. */while (1){num_bytes = read( fd, buf, sizeof(buf) );if (num_bytes > 0){write (STDOUT_FILENO, buf, num_bytes);}}return EXIT_SUCCESS;
}
//publish/main.cpp
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>int main(int argc, char *argv[])
{int fd;int state = 0;char buf[256];struct stat stat_buf;int count = 0;ssize_t len, bytes_written;/* Is PPS running? */if (stat( "/pps", &stat_buf) != 0){if (errno == ENOENT)printf ("The PPS server isn't running.n");elseperror ("stat (/pps)");return EXIT_FAILURE;}/* Create the "button" object (if it doesn't already exist). */fd = open( "/pps/button", O_RDWR | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO );if ( fd < 0 ){perror ("Couldn't open /pps/button");return EXIT_FAILURE;}/* Loop forever, toggling the state of the button. */while ( 1 ){usleep (500);count++;len = snprintf(buf, 256, "state::%snpub1::%d", state ? "on" : "off", count);bytes_written = write( fd, buf, len );if (bytes_written == -1){perror ("write()");}else if (bytes_written != len){printf ("Bytes written: %d String length: %dn", bytes_written, len);}if ( state == 0 )state = 1;elsestate = 0;}return EXIT_SUCCESS;
}
本文发布于:2024-02-05 07:50:17,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170727754064687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |