内部服务器错误

内部服务器错误

我正在尝试从我的本地网络服务器进行串行通信,因此我创建了一个 c++ 文件并对其进行了编译,使其进行实际通信并使用 GCC 对其进行了编译:

#include <iostream>
#include <fstream>

using namespace std;

char c = 2;
char hexdata = (c & 0xFF);

int main () {

  fstream fs;
  fs.open ("/dev/ttyS0", std::fstream::out | std::fstream::app);

  fs << hexdata;

  fs.close();

  return 0;
}

到目前为止,它可以正常工作,我可以读取发送的数据。现在我将其复制到 /usr/lib/cgi-bin 并将其命名为 serialOut.cgi,并尝试从终端执行它,它也可以正常工作,但是当我尝试从浏览器打开它时,它给出了一个内部错误:在此处输入图片描述

虽然我在同一个目录中还有另外两个 cgi 脚本运行良好。我尝试检查权限,结果也没有问题:

-r-xr-xr-x 1 root root 34408 Mar 30 18:37 serialout.cgi

另外,error.log 没有错误。这个问题的原因是什么?我该如何解决?


编辑

我已经编辑了我的代码,现在内部服务器错误已经消失,并且它显示一条消息,但是串行数据仍然没有发送。

#include <iostream>
#include <fstream>

using namespace std;

char c = 2;
char hexdata = static_cast<char>(c & 0xFF);

int main () {

  fstream fs;
  fs.open ("/dev/ttyS0", std::fstream::out | std::fstream::app);

  fs << hexdata;

  fs.close();
  cout << "Content-type: text/html" << endl << endl;
  cout << "<html><body>Done!</body></html>";

  return 0;
}

在此处输入图片描述

我尝试将 /dev/ 的别名添加到实际目录 /dev/,但仍然没有解决任何问题。任何帮助都值得感激。

相关内容