Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ tun/tap接口的write()返回;无效参数";_C++_Linux_Qt_Tun Tap - Fatal编程技术网

C++ tun/tap接口的write()返回;无效参数";

C++ tun/tap接口的write()返回;无效参数";,c++,linux,qt,tun-tap,C++,Linux,Qt,Tun Tap,我已成功创建并连接到tap接口。 我也可以从界面上阅读,没有问题。 但试图写入它却无法报告“无效参数”。守则如下: int TapInterface::write(char *buf, int n) { int nwrite; if((nwrite=::write(this->my_tap_fd, buf, n))<0) { qDebug("Writing data") ; perror("Error:"); exit(1); } return n

我已成功创建并连接到tap接口。 我也可以从界面上阅读,没有问题。 但试图写入它却无法报告“无效参数”。守则如下:

int TapInterface::write(char *buf, int n)
{
  int nwrite;
  if((nwrite=::write(this->my_tap_fd, buf, n))<0)
 {
   qDebug("Writing data") ;
   perror("Error:");
   exit(1);
  }
  return nwrite;
}
....
....
QByteArray txData("hello");
write(txData.data(), txData.length());
intTapInterface::write(char*buf,intn)
{
int-nwrite;

if((nwrite=::write(this->my\u tap\u fd,buf,n))哪一行给出了错误?很抱歉,响应太晚;write函数返回-1,即:write(this->my\u tap\u fd,buf,n),因此输入了if语句和“无效参数”perror报告了错误代码。代码中的最后两行显示了我实际上是如何调用函数的。您确定您的
QIODevice
已正确打开吗?可以看出,我在tap界面中写的是一个示例“hello”msg!这可能是问题的根源吗?它应该是一个有效的以太网帧/ip包吗?解决了,正如我猜测的那样:写入tun/tap接口的数据应该是一个有效的pkt/帧