14 #include <sys/types.h>
24 string::size_type loc;
25 bool anyvalid =
false;
26 while ( ( loc = s.find( cc ) ) != string::npos ) {
27 bool valid = (loc == 0);
28 if (!valid && loc > 0)
29 valid = ( (s[loc-1] ==
'\n') || (s[loc-1] ==
'\r') );
30 s = s.substr( loc+1 );
32 sscanf( s.c_str(),
"%f", &val );
41 string bleh( buf, ammt );
55 if (ammt == 0 || ammt == -1)
66 if ( 1 == read( mysocket_read, &c, 1 ) ) {
67 printf(
"recved bytes %c %d", c, (
int) c );
78 if ( !waitpid( p, &status, WNOHANG ) )
83 pid_t
F0rkProcess(
int close_this_socket,
int &write,
int &read )
85 char writer_str[65536];
87 char reader_str[65536];
91 pwd[32766] = pwd[32767] = 0;
92 char reader[] =
"myreadsocketXXXXXX";
93 char writer[] =
"mywritsocketXXXXXX";
95 write = mkstemp( writer );
96 int tmpread = mkstemp( reader );
100 strcpy( writer_str, pwd );
101 strcpy( reader_str, pwd );
102 strcat( writer_str, writer );
103 strcat( reader_str, reader );
104 read = open( reader_str, O_RDONLY|O_SHLOCK|O_TRUNC, 0xffffffff );
107 pid_t retval = fork();
116 close( close_this_socket );
117 execlp(
"./soundserver.child",
"./soundserver.child", writer_str, reader_str, NULL );
120 int main(
int argc,
char **argv )
127 for (
int i = 0;
i < 10 && fd == -1;
i++) {
129 if (argc > 1) port = atoi( argv[1] );
135 while (!done && !
quit) {
136 pid_t mypid =
F0rkProcess( fd, mysocket_write, mysocket_read );
152 static std::vector< std::string >paths;
154 char mycurpath[8192];
155 getcwd( mycurpath, 8191 );
156 mycurpath[8191] =
'\0';
157 paths.push_back( mycurpath );
160 struct passwd *pwent;
161 pwent = getpwuid( getuid() );
162 chdir( pwent->pw_dir );
165 mkdir(
".vegastrike", 0xffffffff );
166 chdir(
".vegastrike" );
167 }
else if ( !paths.empty() ) {
168 chdir( paths.back().c_str() );