Vraag Fout bij het uitvoeren van een opdracht in Ubuntu


Ik ben een newbie voor Ubuntu. Wanneer ik een opdracht in een terminal uitvoer, krijg ik een foutmelding. Het commando is:

$ ./h_affine.ln -haraff -i img1.ppm -o img1.haraff -thres 1000

De fout is:

modglue::ext_process::fork: execvp failed.

De bovenstaande opdracht is voor het converteren van een afbeelding naar een reeks waarden. Help alstublieft om dit uit te zoeken. Ik heb geen idee wat deze fout betekent.


0
2018-01-30 09:32


oorsprong




antwoorden:


Er is geen manier om te vertellen wat het onderliggende probleem zou kunnen zijn van alleen die boodschap. Probeer het proces te traceren en kijk wat er gebeurt:

strace -f ./h_affine.ln -haraff -i img1.ppm -o img1.haraff -thres 1000

Leg de uitvoer vast, zoek naar "exec" en kijk of er aanwijzingen zijn over wat het probleem was. Eigenlijk, strace somt gewoon alle kernel-aanroepen op die een programma gebruikt terwijl het wordt uitgevoerd. Dit is erg handig, want alle dingen die je je voorstelt in een programma (knoeien met gegevens, etc.) zijn slechts interne details - strace vangt alles het eigenlijk doet.


1
2018-01-30 09:55



Dank u meneer. Ik volgde het proces met behulp van het bovenstaande commando. Maar ik kon niet begrijpen wat ik moest doen om de fouten recht te zetten. - krish
Wel, het lijkt erop dat het een programma probeert uit te voeren, maar de fout laat niet zien wat. Als strace toont een oproep naar fork Als u een fout retourneert, is uw doos mogelijk niet meer over voldoende bronnen (te veel of te weinig geheugen). Als er een oproep naar wordt weergegeven exec als het niet lukt, kan het kinderprogramma om de een of andere reden niet worden gestart. Als er geen oproep naar wordt weergegeven exec helemaal, betekent het waarschijnlijk het kindprogramma niet in de eerste plaats kon worden gevonden. - Useless