#import std.process void main() { execvp("ip", "route"); } result: Object "ute" is unknown, try "ip help". That is the first two bytes are lost Adding two spaces works: #import std.process void main() { execvp("ip", " route"); } Version 2.055, linux, 32bit Thanks.
You're calling execvp with the wrong arguments. You need to call it like this: execvp("ip", ["ip", "route"]); because argv[0] is supposed to be the name of the program, and argv[1]... are the program arguments. As for the actual bug (first two characters get eaten), it's not a Phobos bug, it's a bug in /bin/ip. To prove this, try this (from your home directory): ln -s /bin/ip ./route ./route You'll get the same error message, because argv in this case = ["ip"]. It appears that /bin/ip is doing something strange when argv[0] is not equal to "ip", but there's not much Phobos can do about it.