I urgently some help with this code. I am trying to implement the
following pipeline and i keep getting this error Erro:ENOENT
can anybody please help me to get this code working
I urgently some help with this code. I am trying to implement the
following pipeline and i keep getting this error Erro:ENOENT
can anybody please help me to get this code working
The error is most likely coming from the “exec” command in the forked
child process. It’s telling you that one of your commands does not
exist.
Can you post the full error message? That might give some more insight
and a better answer (this is just my best guess).
Blessings,
TwP
PS In your child, call exit! instead of just plain exit. exit! will
prevent the at_exit routines from running and killing file descriptors
in the parent. See the documentation on fork for more details.
All right, To illustrate what happens i have add a puts command to the
code ! the result is so bizzare!!!
Here is the code again:
def handleCommandLine(input)
#splits the command line
command = input.split('|').map{|c|word_list(c)}
i = 0
while i< command.length
commands = command.at(i)
puts commands , "...........\n"
execute(commands)
i +=1
end
end
def execute(commands)
rd, wr = IO.pipe
if fork.nil?
# child
rd.close
$stdout.reopen(wr)
wr.close
exec(*commands)
exit
else
# parent
wr.close
$stdin.reopen(rd)
rd.close
Process.wait
end
end
so i used this to test it
001>ls | grep D
here is the result!! the correct result must be 001>Desktop and it has
to stop there!!!
ls
…
grep
D
…
001>Desktop
…
Test.rb:45:in exec': No such file or directory - Desktop (Errno::ENOENT) from Test.rb:45:inexecute’
from Test.rb:32:in handleCommandLine' from Test.rb:20:inrun’
from Test.rb:17:in loop' from Test.rb:17:inrun’
from Test.rb:68
thanks a lot
Fara
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.