私は、telnet クライアントから引数を受け取り、traceroute を実行し、情報を telnet クライアントに送り返す traceroute サーバーを開発しようとしています。たとえば、サーバーでtelnetクライアントから引数を受け取っていますtraceroute www.google.com
が、どういうわけかそれを実行しようとすると、奇妙なエラーが発生します:
: Name or service not known
' on position 1 (argc 1)line arg `www.google.com
私が奇妙だと思ったのは、サーバー側でコマンドをハードコーディングすると正常に動作し、サーバー側でコマンドを受け取って印刷すると、それも正常に動作することです。ただし、文字配列で受け取った同じコマンドは、上記のエラーで実行に失敗します。
これが私のコードです:
int main() {
int sockfd,new_fd;
char client_arg[100];
//Create a socket and establish the connection
if (recv(new_fd,client_arg,100,0)== -1)
perror("recv");
printf("%s\n",client_arg); // prints traceroute www.google.com
system(client_arg);
return 0;
}