主题:ETR232i执行DOS命令?

  共有24073人关注过本帖    
foundlore
1楼


ETR232i执行DOS命令?  发帖心情 Post By:2005-4-19 11:51:00   [只看该作者]

我想在终端增加一个远程控制执行DOS命令并回传结果的功能,部份代码如下:
sprintf( BufStr,"%s > C:\\TEMP",InMsg );
system( BufStr ); //执行DOS命令
sprintf( BufStr,"FLZSJD" ); //信息头标志
fp=fopen("C:\\TEMP","rb");
if(!fp)
{
fseek(fp,0,SEEK_END);
len=ftell(fp);
fseek(fp,0,SEEK_SET);
if( len>0 && len<1000 )
{
fread(&BufStr[6],1,len,fp);
fclose(fp);
}
}
其中InMsg是以<|>\0<|>结尾的字串(包含了DOS命令),BufStr为要回传的字串(长度为len+6)。
但发送DIR命令后回传的是乱码(连信息头都没有了),且用TDRF的DIR看不到C:\TEMP文件,请问是程序错误,还是模块不支持system()函数?

  单帖管理 | 引用 | 回复 回到顶部
zhl
2楼


  发帖心情 Post By:2005-4-19 14:55:00   [只看该作者]

DOS命令执行后的结果重定向到文件中,在DOS环境下是支持的。但是程序中利用system()这样调用不一定能够支持该项应用。

  单帖管理 | 引用 | 回复 回到顶部
foundlore
3楼


  发帖心情 Post By:2005-4-20 9:13:00   [只看该作者]

但我过去在一块386SX的PC104板上成功做过

  单帖管理 | 引用 | 回复 回到顶部
zhl
4楼


  发帖心情 Post By:2005-4-20 10:53:00   [只看该作者]

我们在ETR232I上作了测试,是可以的。
调用 system( "dir > list.log" )后,可以检查到list.log 文件内容完全正确。

  单帖管理 | 引用 | 回复 回到顶部
foundlore
5楼


  发帖心情 Post By:2005-4-22 10:00:00   [只看该作者]

我也又检查了程序,是InMsg指针错了,问题已解决,谢谢!
另外,用GPRS回传结果的字串内容差了一截,是否GPRS包长度的限制?如何处理才能接收到完整内容?请指教

  单帖管理 | 引用 | 回复 回到顶部
zhl
6楼


  发帖心情 Post By:2005-4-22 11:08:00   [只看该作者]

PPP数据包长度是1500,所以在接收数据时按照此长度来选择。函数返回值为实际接收到的长度。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

ETR232i执行DOS命令?

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: