Vraag & Antwoord

Programmeren

[C] Programma executen

5 antwoorden
  • Ey, Ik ben bezig met een programmaatje aan het schrijven dat een ander programma moet aanroepen in C onder Linux (RH8.0). Voor het executen gebruik ik het volgende: [code:1:7f0dc48a73]result=system("ping -c 1 192.168.0.1 -w 1 |grep icmp_seq");[/code:1:7f0dc48a73] Het roept dus ping op welke 1 packet verstuurt. Het gevolg hiervan is dat ik de output van ping op mijn scherm zie wat echter niet de bedoeling is. De output moet in een variabele komen (result dus) Nu las ik al dat system() als return waarde -1 en <null> heeft. System is neem ik aan voor mij niet de goede functie. Welke moet ik hier dan voor gebruiken? MVGR, Rene
  • Hallo Ey, Ik zou de output redirecten naar een logfile in /tmp en deze dan uitlezen. de functie system is wel de juiste functie om een extern programma aan te roepen. Sjaak
  • Daar had nog nog niet eens aan gedacht :oops: Maar is het echt niet mogelijk om dit in 1x keer doen d.m.v. van een functie? Zo heb je bv. in php de functies system(), passthru() en exec() waarbij elke functie een andere return heeft (in variable, meteen op scherm etc..)
  • Tja je moet wel goed opletten welke system call wat teruggeeft. Zo zal de ene je de output geven en de ander alleen een 1 of een 0 (wel of niet gelukt). Je zou de output kunnen vangen d.m.v. de STDOUT te redirecten in een file / variabele of whatever.
  • pipes, hebben ze die ook onder linux?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.