J'ai un objet partagé qui fait printf()
s via attribut pour init; Assez simple. Cela m'informe juste de certaines variables que j'ai définies.LD_PRELOAD, bash et printf
Quand je fais LD_PRELOAD=mylib.so ./program.sh -flags
le program.sh
crache des erreurs en raison des printfs:
./program_run: line 16: cd: mylib.so: Startup
.: File name too long
./program_run: line 18: test: too many arguments
Ensuite, le programme commence normalement vers le haut. Il semble que le script bash soit corrompu avec les printf()
lors de la vérification des variables.
Y a-t-il une solution de contournement?
Imprime dans 'stderr' au lieu de' stdout'. De nombreuses commandes dans les scripts bash utilisent 'stdout' et vous ne pouvez pas leur ajouter un texte aléatoire. –