As you expected, changing the syslog call from
    syslog( LOG_ERR | LOG_LOCAL4, head->text ); 
to
    syslog( LOG_ERR | LOG_LOCAL4, "%s", head->text ); 

did not change anything.

To track down the problem further, I have made a small test application :

#include <stdlib.h>
#include <stdio.h>

#include <native/task.h>
#include <native/timer.h>
#include <rtdk.h>


int main( int arc, char *argv[] )
{
int i;

rt_print_auto_init(1);

rt_printf("--------------- TEST RT-PRINTF  1 ------------\n");

        sleep(1);

daemon(0,0);

        rt_print_auto_init(1);

        rt_printf("--------------- TEST RT-PRINTF  2 ------------\n");

        sleep(10);

return(0);
}



This application gives the following results :
- If the daemon() function is not called, all rt_printf() do work well
  and output is shown in syslog
- If daemon() function is called, and first call to sleep(1) is omitted,
  there is no output in the syslog whatsoever.
- If daemon() function is called, and first call to sleep(1) is executed,
  there is output of the first rt_printf in the syslog but not of the second
  one.

I do not have any idea why daemonizing of the process is not giving
any output to the syslog.



Oliver





-------- Original Message --------
Subject: Re: Re-6: [Xenomai-help] rt_printf with daemonized task (07-Okt-2009 
15:49)
From:    Gilles Chanteperdrix <[email protected]>
To:      [email protected]

> [email protected] wrote:
> > 
> > 
> > in the glibc documentation it's specified as a void function :
> > 
> > 18.2.2 syslog, vsyslog
> > 
> > The symbols referred to in this section are declared in the file syslog.h.
> > — Function: void syslog (int facility_priority, char *format, ...)
> 
> So, the first argument is a format string? You should pass "%s" followed
> by head->text then, not head->text directly. If head->text contains the
> % characters, you will get errors. I do not think fixing this will fix
> your issues though.
> 
> I have no idea why it fails. Did you try to put a printf as well as the
> syslog call to check whether syslog is really called? Are you 100% sure
> that you do not close file descriptors when daemonizing your process?
> 
> 
> -- 
>                                           Gilles
> 


To: [email protected]
Cc: [email protected]
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to