hnzi
06-09-2002, 12:01
hi leute,
ich hab folgeneds problem mit der c-func kill, mein make sagt immer:
gcc -ansi -pedantic -Werror -Wall -g -c -o ttySniffer.o ttySniffer.c
cc1: warnings being treated as errors
ttySniffer.c: In function `main':
ttySniffer.c:164: warning: implicit declaration of function `kill'
make: *** [ttySniffer.o] Error 1
das heisst doch dass der compiler die zugehoerigen header dateien nicht findet! ich habe aber signal.h und sys/types.h wie es im manpage steht, eingebunden.
wenn jemand eine idee hat, woran das liegt, oder einen anderen weg kennt, soll er posten.
ich will prozesse, die ich mit fork gestartet habe 'sauber' beenden
ein auszug aus meinem program:
fork_id = fork();
switch( fork_id )
{
case 0: /* child */
child_id = fork();
switch( child_id )
{
case 0: /* child2 (child) */
if( monitor_ttyS( fd_b, 1 ) == EXIT_FAILURE )
{
fprintf( stderr, "main::monitor_ttyS() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
}
break;
case -1: /* error */
fprintf( stderr, "main::fork() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
break;
default: /* child1 (parent) */
if( monitor_ttyS( fd_a, 0 ) == EXIT_FAILURE )
{
fprintf( stderr, "main::monitor_ttyS() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
}
wait( NULL );
break;
}
break;
case -1: /* error */
fprintf( stderr, "main::fork() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
break;
default: /* parent */
do
{
control = fgetc( stdin );
}
while( control != 'q' );
if( kill( -2, SIGKILL ) )
{
fprintf( stderr, "main::kill() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
}
break;
}
hnzi
ich hab folgeneds problem mit der c-func kill, mein make sagt immer:
gcc -ansi -pedantic -Werror -Wall -g -c -o ttySniffer.o ttySniffer.c
cc1: warnings being treated as errors
ttySniffer.c: In function `main':
ttySniffer.c:164: warning: implicit declaration of function `kill'
make: *** [ttySniffer.o] Error 1
das heisst doch dass der compiler die zugehoerigen header dateien nicht findet! ich habe aber signal.h und sys/types.h wie es im manpage steht, eingebunden.
wenn jemand eine idee hat, woran das liegt, oder einen anderen weg kennt, soll er posten.
ich will prozesse, die ich mit fork gestartet habe 'sauber' beenden
ein auszug aus meinem program:
fork_id = fork();
switch( fork_id )
{
case 0: /* child */
child_id = fork();
switch( child_id )
{
case 0: /* child2 (child) */
if( monitor_ttyS( fd_b, 1 ) == EXIT_FAILURE )
{
fprintf( stderr, "main::monitor_ttyS() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
}
break;
case -1: /* error */
fprintf( stderr, "main::fork() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
break;
default: /* child1 (parent) */
if( monitor_ttyS( fd_a, 0 ) == EXIT_FAILURE )
{
fprintf( stderr, "main::monitor_ttyS() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
}
wait( NULL );
break;
}
break;
case -1: /* error */
fprintf( stderr, "main::fork() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
break;
default: /* parent */
do
{
control = fgetc( stdin );
}
while( control != 'q' );
if( kill( -2, SIGKILL ) )
{
fprintf( stderr, "main::kill() %d", __LINE__ );
perror( "" );
exit( EXIT_FAILURE );
}
break;
}
hnzi