我有一个简单的C程序,可以输出argc:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("argc = %d\n", argc);
return 0;
}
我试图在命令行中使用python命令提供的输入对其进行测试,但出现以下错误:
C:\Users...\bin\Debug>python -c "print('A')" | pwnable.exe
argc = 1
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1252'>
OSError: [Errno 22] Invalid argument
打印出1而不是2
为什么会出现这个错误,它意味着什么
管道写入标准输入,而不是命令行参数。如果希望输出为参数,请使用命令替换
错误22似乎与在Windows上打印到管道有关,请参见类似问题:Python print and wc with invalid argument leads to OSError
相关问题 更多 >
编程相关推荐