问题遇到的现象和发生背景
c++使用管道读取安卓图片
或者使用adb shell screencap -p命令截图返回的图片经过断点调试返回的数据不全只有5个字符
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
int execmd2(char* cmd, char* result) {
FILE* pipe = _popen(cmd, "r"); //打开管道,并执行命令
if (!pipe) {
return 0;
} //返回0表示运行失败
char ch;
int len = 0;
while ((ch = fgetc(pipe)) != EOF) {
len = strlen(result);
result[len] = ch;
//result += ch;
//strcpy(result,(char*)ch);
printf("%c", ch);
}
_pclose(pipe); //关闭管道
return 1; //返回1表示运行成功
}
int main(){
char result[1024 * 4] = "";
execmd2((char*)"adb shell cat sdcard/1.png", result);
}
运行结果及详细报错内容
execmd2命令获取的返回值result数据不完整明明使用cmd都可以查看到ascii的数据
但是使用管道读取只有五个字符 塒NG 就很奇怪是为什么呢
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
试过断点调试以及把fgetc改为fgets自定义读取大小都不可以五个字符以后的数据全为-1
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
可以获取到图片完整的字符集数据相当于java的byte类似使用java以及C#都尝试成功过不知道是因为那个地方出现的问题
还有就是不可以读取中文文本