skipstone/examples/read.c-e
2017-11-29 20:33:01 -06:00

46 lines
925 B
Text

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <skipstone/link.h>
#include <skipstone/message.h>
static void usage(int argc, char **argv) {
fprintf(stderr, "usage: %s /dev/rfcommX\n", argv[0]);
exit(1);
}
int main(int argc, char **argv) {
skipstone_link *link;
void *buf;
uint16_t len, endpoint;
if (argc != 2) {
usage(argc, argv);
}
if ((buf = malloc(SKIPSTONE_MESSAGE_MAX_PAYLOAD)) == NULL) {
goto error_malloc_buf;
}
if ((link = skipstone_link_open_serial(argv[1])) == NULL) {
goto error_link_open;
}
while (skipstone_link_recv(link, buf, &len, &endpoint, NULL) >= 0) {
printf("Received message %hu bytes for endpoint %hu\n",
len, endpoint);
}
perror("skipstone_link_recv()");
skipstone_link_close(link);
return 0;
error_link_open:
free(buf);
error_malloc_buf:
return 1;
}