2013-04-22 68 views
-1

嘿,我想打開並使用系統調用 讀取文件,並通過信函 我有一個彙編文件 功能system_call在這封信打印數據,我想「保存 「從system_call(SYS_OPEN 使用它指針的文件描述符。目的就是不使用的#include目錄使用文件描述符從空調系統調用

我的代碼是

system_call(SYS_OPEN,argv[2],0,) 

其中的argv [2] =」 A.TXT 「 SYS_OPEN = 5 和4 PARAM應該是允許的,我不知道以後「拯救」它的指針,我想閱讀和打印這樣

while(system_call(SYS_READ,STDIN, input_char , 1)>0) 
    { 
    system_call(SYS_WRITE,STDOUT,input_char, 1); 
    } 

謝謝你寫什麼有

回答

1

你可以編寫代碼來做到這一點使用庫函數(即open(2),read(2)),然後運行strace下的程序看函數調用它使和參數,它使用,然後複製在你的自己的代碼....

+0

我沒有使用strace的前..我如何使用它?你有maby像手冊? – 2013-04-22 07:44:19

+2

@Kika看到這個問題:http://stackoverflow.com/questions/174942/how-to-use-strace – Alex 2013-04-22 07:53:10

+0

@亞歷克斯:謝謝你添加鏈接... – 2013-04-22 07:56:38

2

這是一個系統調用列表(可能是一個但已過時,但將爲你工作)http://asm.sourceforge.net/syscall.html。你可以檢查sys_open,sys_read的適當的linux內核源碼中的system_call的實現細節和用法,sys_write等。

0

通過使用int作爲指向文件的指針得到它:

char input_char[1]; 
int file = system_call(SYS_OPEN,argv[j],0,0777); 

while(system_call(SYS_READ,file, input_char , 1) >0) 
    { 
    system_call(SYS_WRITE,STDOUT,input_char, 1); 
    } 

感謝您的意見和幫助

相關問題