Sono consapevole che è possibile utilizzare 'readelf -d | grep RPATH 'per ispezionare un dato binario dalla shell, ma è possibile farlo all'interno di un processo?C'è un modo per ispezionare il rpath corrente su Linux?
Qualcosa di simile (il mio completamente composta chiamata di sistema):
/* get a copy of current rpath into buffer */
sys_get_current_rpath(&buffer);
Sto cercando di diagnosticare alcuni sospettano SO che collega i problemi nella nostra base di codice, e vorrei ispezionare il RPATH questo modo, se possibile (I Preferirei non dover generare uno script esterno).
è brillante, ma non funziona con $ ORIGIN. $ ORIGIN non è interpretato e restituito com'è dalla funzione. C'è un modo per aggiungere l'interpretazione $ ORIGIN? –
@ Jérôme Se si sta eseguendo in un ambiente in cui '/ proc' è montato, quindi l'espansione' $ ORIGIN' è semplice come 'readlink ("/proc/self/exe ", ...)' quindi NUL-termina a l'ultimo taglio. –