我正在学习汇编,并且有不同的文件描述符用于读取用户输入。
在阅读键盘输入内容时,我期望使用文件描述符0(stdin),但是遇到了article,其中使用了文件描述符2(stderr)。
;Read and store the user input
mov eax, 3
mov ebx, 2
mov ecx, num
mov edx, 5 ;5 bytes (numeric, 1 for sign) of that information
int 80h
但是,我通常看到ebx设置为0:
;Read and store the user input
mov eax, 3
mov ebx, 0
mov ecx, num
mov edx, 5 ;5 bytes (numeric, 1 for sign) of that information
int 80h
我尝试将ebx设置为0和2,它们都可以正常工作而没有问题。您能告诉我哪个是更好的选择吗?还是我应该采用其他最佳实践方法?
答案 0 :(得分:2)
更好的选择是使用STDIN文件描述符(0号)。不过,您可以使用STDERR流(第2个)(实际上是输出流)进行读取:
The stderr stream is expected to be open for reading and writing
如果重定向STDIN流,这是一个实际的解决方法。