-1

システムコールを使用してファイルを開いて読み取り、その中のデータを文字ごとに出力したいのですが、アセンブリファイルに関数 system_call があり、system_call(SYS_OPEN to #include ディレクトリを使うのが目的ではない

私のコードは

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

where argv[2] = "a.txt" SYS_OPEN = 5 と 4 番目のパラメーターは許可でなければならず、そこに何を書くべきかわかりません

ポインタに「保存」した後、このように読んで印刷したい

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

ありがとうございました。

4

3 に答える 3

2

これはシステム コールのリストです (古いかもしれませんが、役に立ちます) http://asm.sourceforge.net/syscall.html .sys_open の適切な Linux カーネル ソースで、system_call の実装の詳細と使用法を確認できます。 、sys_read、sys_write など。

于 2013-04-22T07:43:52.217 に答える
1

ライブラリ関数 (つまりopen(2)、read(2)) を使用してこれを行うコードを記述し、プログラムを実行して、straceそれが行う関数呼び出しと使用するパラメーターを確認し、それを独自のコードで複製することができます....

于 2013-04-22T07:41:58.460 に答える