私は、libuv というライブラリの開発者によって提供されたこのソース コードを見てきました。一部のサンプル コードでは、関数を別の関数のパラメーターとして渡しますが、必要なパラメーターはどれも渡されません。パラメータはどのように入力されていますか? 私が見ている関数は uv_fs_open です。
ソースへのリンクは次のとおりです (関数コードについては、1000 行目あたりを参照してください): https://github.com/libuv/libuv/blob/202195c2f45ced200ccf880ff4502eee94f11ab5/src/unix/fs.c
サンプル コードは次のとおりです。
int main() {
loop = uv_default_loop();
int r = uv_fs_open(loop, &open_req, path, O_RDONLY, S_IRUSR, open_cb);
if (r) {
fprintf(stderr, "Error at opening file: %s.\n",
uv_strerror(uv_last_error(loop)));
}
uv_run(loop, UV_RUN_DEFAULT);
return 0;
}
void open_cb(uv_fs_t* req) {
int result = req->result;
if (result == -1) {
fprintf(stderr, "Error at opening file: %s.\n",
uv_strerror(uv_last_error(loop)));
}
uv_fs_req_cleanup(req);
uv_fs_read(loop, &read_req, result, buf, sizeof(buf), -1, read_cb);
}