我想知道如何在node.js的c addon(.cc)文件中创建文件并将数据附加到其中? 我用下面的代码做同样的事情,但是在我的ubuntu机器上找不到文件“data.txt”(背后的原因可能是代码下面的创建文
我用下面的代码做同样的事情,但是在我的ubuntu机器上找不到文件“data.txt”(背后的原因可能是代码下面的创建文件不正确的方法,但奇怪的是我没有收到任何错误/编译时警告).
FILE * pFileTXT; pFileTXT = fopen ("data.txt","a+"); const char * c = localReq->strResponse.c_str(); fprintf(pFileTXT,c); fclose (pFileTXT);Node.js依赖于 libuv,一个C库来处理I / O(异步或非异步).这允许您使用事件循环.
你对这个免费的在线书籍/ libuv:http://nikhilm.github.com/uvbook/index.html的介绍感兴趣
具体来说,有一章专门讨论reading/writing files.
int main(int argc, char **argv) { // Open the file in write-only and execute the "on_open" callback when it's ready uv_fs_open(uv_default_loop(), &open_req, argv[1], O_WRONLY, 0, on_open); // Run the event loop. uv_run(uv_default_loop()); return 0; } // on_open callback called when the file is opened void on_open(uv_fs_t *req) { if (req->result != -1) { // Specify the on_write callback "on_write" as last argument uv_fs_write(uv_default_loop(), &write_req, 1, buffer, req->result, -1, on_write); } else { fprintf(stderr, "error opening file: %d\n", req->errorno); } // Don't forget to cleanup uv_fs_req_cleanup(req); } void on_write(uv_fs_t *req) { uv_fs_req_cleanup(req); if (req->result < 0) { fprintf(stderr, "Write error: %s\n", uv_strerror(uv_last_error(uv_default_loop()))); } else { // Close the handle once you're done with it uv_fs_close(uv_default_loop(), &close_req, open_req.result, NULL); } }
如果你想为node.js写C,花点时间阅读这本书.这很值得.