source: roaraudio/roarclients/pipetest.c @ 1780:ac6f4045e59b

Last change on this file since 1780:ac6f4045e59b was 1780:ac6f4045e59b, checked in by phi, 15 years ago

only build this if we have fork()

File size: 1.7 KB
Line 
1//pipetest.c:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008
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, 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 */
24
25#include <roaraudio.h>
26#include <unistd.h>
27
28#define BUF_MAX 1024
29
30int main (void) {
31#ifdef ROAR_HAVE_FORK
32 char buf[BUF_MAX];
33 struct roar_vio_calls s0, s1;
34 struct roar_vio_calls * me;
35
36 if ( roar_vio_open_pipe(&s0, &s1, ROAR_VIO_PIPE_TYPE_AUTO, O_RDWR) == -1 ) {
37  fprintf(stderr, "Error: can not create pipe\n");
38 }
39
40 switch (fork()) {
41  case 0:
42    me = &s0;
43    roar_vio_close(&s1);
44   break;
45  default:
46    me = &s1;
47    roar_vio_close(&s0);
48 }
49
50 snprintf(buf, BUF_MAX, "Hello from pid %i\n", getpid());
51 roar_vio_write(me, buf, strlen(buf));
52
53 buf[0] = 0;
54
55 roar_vio_read(me, buf, BUF_MAX);
56 printf("This is pid %i: %s", getpid(), buf);
57
58 roar_vio_close(me);
59
60 sleep(1); // wait for the other child...
61
62 return 0;
63#else
64 fprintf(stderr, "Error: no fork() support!\n");
65 return 1;
66#endif
67}
68
69//ll
Note: See TracBrowser for help on using the repository browser.