2013-04-22 60 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); 
    } 

感谢您的意见和帮助

相关问题