c#中的新进程tcp转储

时间:2012-08-26 10:37:19

标签: c# process createprocess tcpdump

我正在尝试创建一个在我的程序中运行tcpdump的进程..

这是代码

            Process tcpdump = new Process();
            tcpdump.StartInfo.FileName= @"/usr/local/bin/tcpdump";
            tcpdump.StartInfo.CreateNoWindow = true;
            tcpdump.StartInfo.Arguments = " -i en1 -c 10 -nn tcp and src host " + ip + " and port " + ports[i];
            tcpdump.Start();
            tcpdump.WaitForExit(); 

但是我收到错误,并且进程无法正常启动 这是我得到的错误信息

open: invalid option -- i
Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b <bundle identifier>] [-a <application>] [filenames] [--args arguments]
Help: Open opens files from a shell.
      By default, opens each file using the default application for that file.  
      If the file is in the form of a URL, the file will be opened as a URL.
Options: 
      -a                Opens with the specified application.
      -b                Opens with the specified application bundle identifier.
      -e                Opens with TextEdit.
      -t                Opens with default text editor.
      -f                Reads input from standard input and opens with TextEdit.
      -F  --fresh       Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
      -R, --reveal      Selects in the Finder instead of opening.
      -W, --wait-apps   Blocks until the used applications are closed (even if they were already running).
          --args        All remaining arguments are passed in argv to the application's main() function instead of opened.
      -n, --new         Open a new instance of the application even if one is already running.
      -j, --hide        Launches the app hidden.
      -g, --background  Does not bring the application to the foreground.
      -h, --header      Searches header file locations for headers matching the given filenames, and opens them.

1 个答案:

答案 0 :(得分:0)

问题在于参数传递给open命令的方式。

在SO中查看similar question的解决方案。