Someone should really review it as it is my first experience in C.
char * psz_homedir; /* configuration directory */
char * psz_userdir; /* user's home directory */
char * psz_configfile; /* location of config file */
+ char * psz_pidfile;
/* Fast memcpy plugin used */
module_t * p_memcpy_module;
p_vlc->p_libvlc->b_daemon = VLC_TRUE;
+ /* lets check if we need to write the pidfile */
+ p_vlc->psz_pidfile = config_GetPsz( p_vlc, "pidfile" );
+
+ msg_Dbg( p_vlc, "p_vlc->psz_pidfile is %s", p_vlc->psz_pidfile );
+
+ if( p_vlc->psz_pidfile != NULL )
+ {
+ pid_t i_pid;
+ FILE *pidfile;
+
+ i_pid = getpid();
+
+ msg_Dbg( p_vlc, "our PID is %d, writing it to %s", i_pid, p_vlc->psz_pidfile );
+
+ pidfile = utf8_fopen( p_vlc->psz_pidfile,"w" );
+ if( pidfile != NULL )
+ {
+ utf8_fprintf( pidfile, "%d", (int)i_pid );
+ fclose( pidfile );
+ }
+ else
+ {
+ msg_Err( p_vlc, "Cannot open pid file for writing: %s, error: %s", p_vlc->psz_pidfile, strerror(errno) );
+ }
+ }
+
#else
pid_t i_pid;
#define DAEMON_LONGTEXT N_( \
"Runs VLC as a background daemon process.")
+#define PIDFILE_TEXT N_("Write process id to file")
+#define PIDFILE_LONGTEXT N_( \
+ "Writes proccess id into specified file.")
+
#define FILE_LOG_TEXT N_( "Log to file" )
#define FILE_LOG_LONGTEXT N_( \
"Log all VLC messages to a text file." )
#if !defined(WIN32)
add_bool( "daemon", 0, NULL, DAEMON_TEXT, DAEMON_LONGTEXT, VLC_TRUE );
change_short('d');
+
+ add_string( "pidfile", NULL, NULL, PIDFILE_TEXT, PIDFILE_LONGTEXT,
+ VLC_FALSE );
#endif
add_bool( "file-logging", VLC_FALSE, NULL, FILE_LOG_TEXT, FILE_LOG_LONGTEXT,