Ich möchte den Linux-Befehl "pwd" über eine C-Sprachfunktion wie execv () ausführen.
Das Problem ist, dass es keine ausführbare Datei mit dem Namen "pwd" gibt und ich "echo $ PWD" nicht ausführen kann, da echo auch ein eingebauter Befehl ist, der keine ausführbare Datei enthält.
> Sie sollten sh -c echo $PWD
ausführen; im Allgemeinen führt sh -c
Shell-Befehle aus.
(Tatsächlich ist system(foo)
als execl("sh", "sh", "-c", foo, NULL)
definiert und funktioniert daher für Shell-Einbauten.)
Wenn Sie nur den Wert von PWD
haben möchten, verwenden Sie getenv
.
Wenn Sie nur den Shell-Befehl in Ihrem c-Programm ausführen möchten, können Sie
verwenden %Vor%In Ihrem Fall
%Vor%Das Problem ist, dass es keine ausführbare Datei namens "pwd" gibt, und ich kann "echo $ PWD" nicht ausführen, da echo auch ein eingebauter Befehl ist, der keine ausführbare Datei enthält.
Was meinst du damit? Sie sollten die genannten Pakete in / bin /
finden können %Vor%