回答編集履歴

2

Rustフォーラムの類似質問を追加

2020/06/28 08:56

投稿

equal-l2
equal-l2

スコア172

test CHANGED
@@ -33,3 +33,9 @@
33
33
  }
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ 似たような質問をRustのフォーラムで見つけたので貼っておきます。
40
+
41
+ [How to wrap `printf` in libc properly?](https://users.rust-lang.org/t/how-to-wrap-printf-in-libc-properly/20370)

1

ラッパコードへのリンクを追加

2020/06/28 08:56

投稿

equal-l2
equal-l2

スコア172

test CHANGED
@@ -1,4 +1,4 @@
1
- そのcrateにはC言語でvoid*からva_listへ変換するラッパーコードが含まれていて、Rust側ではそのラッパを呼ぶことでprintfを呼んでいます。したがって、そのcrateのprintfのシグネチャはそもそも本来のprintfとは異なるものです。
1
+ そのcrateには[void*va_listへ変換するC言語のラッパーコード](https://github.com/derekdreery/alpm/blob/master/printf/src/printf_wrapper.c)が含まれていて、Rust側ではそのラッパを呼ぶことでprintfを呼んでいます。したがって、そのcrateのprintfのシグネチャはそもそも本来のprintfとは異なるものです。
2
2
 
3
3
  可変長引数を渡したいなら、`...`を使うことで可能になります。
4
4