source: roaraudio/roarclients/pipetest.c @ 5381:430b1d26e12d

Last change on this file since 5381:430b1d26e12d was 5381:430b1d26e12d, checked in by phi, 12 years ago

updated copyright years

File size: 1.7 KB
Line 
1//pipetest.c:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008-2012
5 *
6 *  This file is part of roarclients a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  RoarAudio is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22 *  Boston, MA 02110-1301, USA.
23 *
24 */
25
26#include <roaraudio.h>
27#include <unistd.h>
28
29#define BUF_MAX 1024
30
31int main (void) {
32#ifdef ROAR_HAVE_FORK
33 char buf[BUF_MAX];
34 struct roar_vio_calls s0, s1;
35 struct roar_vio_calls * me;
36
37 if ( roar_vio_open_pipe(&s0, &s1, ROAR_VIO_PIPE_TYPE_AUTO, O_RDWR) == -1 ) {
38  fprintf(stderr, "Error: can not create pipe\n");
39 }
40
41 switch (fork()) {
42  case 0:
43    me = &s0;
44    roar_vio_close(&s1);
45   break;
46  default:
47    me = &s1;
48    roar_vio_close(&s0);
49 }
50
51 snprintf(buf, BUF_MAX, "Hello from pid %i\n", getpid());
52 roar_vio_write(me, buf, strlen(buf));
53
54 buf[0] = 0;
55
56 roar_vio_read(me, buf, BUF_MAX);
57 printf("This is pid %i: %s", getpid(), buf);
58
59 roar_vio_close(me);
60
61 roar_sleep(1); // wait for the other child...
62
63 return 0;
64#else
65 fprintf(stderr, "Error: no fork() support!\n");
66 return 1;
67#endif
68}
69
70//ll
Note: See TracBrowser for help on using the repository browser.