开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VS2013
问题(Question):
目前使用system(str_cmd)去下PSCP指令,在确定指令正确后准备送出
出现 L"buffer is too small" && 0 的错误讯息
预送出的str_cmd指令如下:
const char* str_cmd = pscp -sftp -l A -pw B -P 22
"C:\Users\Documents\Visual Studio 2013\Projects\xxx\xxxxxx\xxxx\ffff.txt"
sftp.Kkkk.com:
有先确认从cstring转const char*与直接用cmd下是OK的,但送到system后就发生错误
我认为应该是system给带的参数限制之类的,想请问这段要怎么去避免呢?谢谢
作者:
EdisonX (卡卡兽)
2016-11-30 20:54:00这段应该是你先去试 pscp 怎么用,确定能用后再放上来
您好,我这边已经确定pack 同样指令可以上传与下载,但丢到程式里的system这段就会有问题,我很确定问题发生在system,想说是否system带的参数有长度限制?打错,pscp 不是pack
作者:
EdisonX (卡卡兽)
2016-12-01 02:29:00system 回报的错误是什么 ? (猜可能是路径问题 ?)
在单步执行system(".....")后出现->"buffer is too small" && 0 错误讯息,检视看是在tcscpy_s.inl错的
S大您好,抱歉上述的pscp 指令是给cmd的,给system 要首尾跟档案位置要加减"",我用同一样的command内容是一样的,在cmd可执行
我心中隐隐觉得问题就出在这里字串常数没处理好,想送进去的字串和实际送进去的不一样
作者:
EdisonX (卡卡兽)
2016-12-01 17:29:00tcscpy_s.. 怎像是没加结束字符爆掉的感觉,你有用这函式吗?你的 cstringtoconstchar 里最后的回传是 ??
E大您好,return char result_temp1[200],这是回传值后来用用一种方式cstring 转const char*就成功,似乎用上面的转法会有问题
作者:
EdisonX (卡卡兽)
2016-12-02 19:28:00恕我没想帮你试 wcstombs_s, 我只纳闷为何不用 _wsystem或 _tsystem , 非得要用 system ??
哈,e大说的正是我后来使用的方式,但我还是不知道为什么要_tsystem才有用,用system则会失败
作者:
EdisonX (卡卡兽)
2016-12-03 03:48:00很明显mbcs系列函式用错啊