从C#运行C代码

时间:2016-11-06 05:07:48

标签: c# c linux mono processstartinfo

有什么方法可以用c#代码调用c代码?

我一直在阅读很多Microsoft文档,我暂时尝试过这种方式:

Process proc = new Process();
proc.StartInfo.WorkingDirectory = "path-to-C-code";
proc.StartInfo.FileName = "C-code-name";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
Console.WriteLine(proc.StandardOutput.ReadToEnd());
proc.WaitForExit();

但显然不起作用。

无论我做什么proc.StartInfo.FileName

,此字符串都保持为空

这是代码用于杀死自己的进程的C代码。

#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char *argv[], char *env[]) {

  int value1;
  int value2;

  srandom(time(NULL));
  switch (random() % 7) {
  case 0:
    exit(random() % 10);
    break;

  case 1:
    value1 = value1 / (value2 - value2);
    break;

  case 2:
    kill(getpid(), SIGKILL);
    break;

  case 3:
    alarm(random() % 60);
    break;

  case 4:
    __asm__("sti");
    break;

  case 5:
    value1 = *((int*) NULL);
    break;

  default:
    break;
  }

  return 0;
}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

{{1}}

感谢J. Piquard