C 中的 gets 函数不通过命令行读取脚本 perl 或 python
gets function in C does not read script perl or python by command line
我需要帮助!我用 C 编写了一个程序,它使用 gets 函数读取,将内容放入缓冲区并打印缓冲区:
#include <stdlib.h>
#include <stdio.h>
int main(){
char buffer[100];
gets(buffer);
printf(buffer);
return 0;
}
但是如果我在 Perl 或 python 中放置一个打印四个 A 的脚本,gets 函数会将其解释为一个字符串,然后打印该字符串:
$(python -c "print 'A'*4")
我 认为 我知道你的意思,尽管它不清楚(所以我主要是在这里猜测):你想要 Perl 或 Python 脚本的输出被 gets
读取的输入对吗?然后你需要管道脚本的输出到你的程序中:
$ python -c "print 'A'*4" | ./your_program
这会将 python
程序的标准输出通过管道传递到您程序的标准输入。
我还假设这是为了 class 或了解缓冲区溢出的练习,因为这是最近使用 gets
的唯一原因。从C99标准开始就废弃了,在C11标准中被彻底移除
我需要帮助!我用 C 编写了一个程序,它使用 gets 函数读取,将内容放入缓冲区并打印缓冲区:
#include <stdlib.h>
#include <stdio.h>
int main(){
char buffer[100];
gets(buffer);
printf(buffer);
return 0;
}
但是如果我在 Perl 或 python 中放置一个打印四个 A 的脚本,gets 函数会将其解释为一个字符串,然后打印该字符串: $(python -c "print 'A'*4")
我 认为 我知道你的意思,尽管它不清楚(所以我主要是在这里猜测):你想要 Perl 或 Python 脚本的输出被 gets
读取的输入对吗?然后你需要管道脚本的输出到你的程序中:
$ python -c "print 'A'*4" | ./your_program
这会将 python
程序的标准输出通过管道传递到您程序的标准输入。
我还假设这是为了 class 或了解缓冲区溢出的练习,因为这是最近使用 gets
的唯一原因。从C99标准开始就废弃了,在C11标准中被彻底移除