0
當在彙編程序中進行系統調用sys_read(int80h中eax的值爲3)時,調用完成後將在寄存器eax中存儲什麼?它是讀取的字符串中的字符數?什麼使sys_read系統調用linux放入寄存器eax?
當在彙編程序中進行系統調用sys_read(int80h中eax的值爲3)時,調用完成後將在寄存器eax中存儲什麼?它是讀取的字符串中的字符數?什麼使sys_read系統調用linux放入寄存器eax?
檢查read(2)
單證:
返回值
成功時,讀的是返回的字節數(零表示文件的結尾),文件位置由該推進數。如果這個數字小於請求的字節數 ,那麼它是 不是錯誤的;這可能發生,例如因爲現在實際可用的更少字節(可能是因爲我們接近 文件結束,或者因爲我們正在從管道中讀取數據,或者從 終端讀取),或者因爲
read()
被中斷一個信號。 在 錯誤,返回-1,errno
被設置爲適當的。在此 的情況下,未指定文件位置(如果有) 是否更改。
提示:找到sys_foo
的文檔,類型man 2 foo
,2
意味着system call。
正確,但錯誤時,-ERRNO在'eax'中,而不是-1,就像它在手冊頁中所說的那樣。從終端(stdin)讀取'eax'中的計數包括結束輸入的換行符(0xA)。 –