Jak zjistit cestu k binarce

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Březen 29 17:13:13 CEST 1999


On Mon, 22 Mar 1999, Michael Mraka wrote:

>  mam program, ktery se nachazi v systemu nekolikrat (x tvrdych linku) a
>  potreboval bych pri (jeho) start zjistit, ktery z nich to byl? (Pokazde
>  ma delat neco trosku jineho.) argv[0] mi nepomuze, protoze muzu mit napr.

To vlaste v principu nejde. Kupodivu to nezachrani ani dentries v 2.2
(*mozna* se u /proc/self/exe ukazuje cesta), protoze lze udelat napriklad
nasledujici prasarnu:

  f = open("/cesta/k/programu", O_RDONLY);
  fcntl(f, F_SETFD, 1); /* close on exec */
  sprintf(fn, "/proc/self/fd/%d", f);
  execve(fn, argv, envp);

:)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"NSA GCHQ KGB CIA nuclear conspiration war weapon spy agent... Hi Echelon!"



Další informace o konferenci Linux