frossensofa Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 Noen som vet åssen man bruker variablen "hentanavn" inn i denne setningen? execlp("sed","sed","-e","s/%Navn:/&","hentaNavn","/g","brev.txt",NULL); Dette går, men da skriver'n ut "hentaNavn" og ikke variablen: execlp("sed","sed","-e","s/%Navn:/&hentaNavn/g","brev.txt",NULL); Lenke til kommentar
☀ ❄ Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 Skal ikke variabler i bash ha prefikset '$'? Ellers kan du vel bruke getenv(). Lenke til kommentar
frossensofa Skrevet 15. mars 2005 Forfatter Del Skrevet 15. mars 2005 jeg skal ha gjort det i c. problemet er at jeg ikke får implementert variablen i den kode setningen. mer av koden: int nyFork; int pipes[4][2]; pipe(pipes[0]); nyFork = fork(); if (nyFork==0){ //dup2(pipes[0][SKRIVTIL],STDOUT); execlp("sed","sed","-e","s/%Navn:/&hentaNavn/g","brev.txt",NULL); } Lenke til kommentar
☀ ❄ Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 char* env_var = getenv("hentaNavn"); execlp("sed","sed","-e","s/%Navn:/&",env_var,"/g","brev.txt",NULL); Lenke til kommentar
frossensofa Skrevet 15. mars 2005 Forfatter Del Skrevet 15. mars 2005 Da får jeg denne feilen: sed: -e expression #1, char 10: Unterminated `s' command Lenke til kommentar
☀ ❄ Skrevet 16. mars 2005 Del Skrevet 16. mars 2005 Ah. Men hvis du bruker getenv() til å finne ut hva hentaNavn er, for deretter å sette sammen en char* som inneholder hele "s/%Navn:/&hentaNavn/g"-uttrykket skal det gå bra. Jeg er egentlig en C++-programmerer og er bortskjemt med std::string, så jeg gidder ikke tenke ut hvordan du må gjøre det med C-style strings Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå