Я хочу знать, как я могу создать файл и добавить данные внутри него в C ++ addon (.cc) файл node.js ??
Я использовал приведенный ниже код, чтобы сделать то же самое, но не смог найти файл «data.txt» на моей машине с Ubuntu (причина может быть в следующем: код не является правильным способом создания файла, но странно, я не получил никакой ошибки / предупреждение во время компиляции).
FILE * pFileTXT;
pFileTXT = fopen ("data.txt","a+");
const char * c = localReq->strResponse.c_str();
fprintf(pFileTXT,c);
fclose (pFileTXT);
Node.js опирается на libuv, библиотека C для обработки ввода / вывода (асинхронная или нет). Это позволяет вам использовать цикл обработки событий.
Вас заинтересует эта бесплатная онлайн-книга / введение в libuv: http://nikhilm.github.com/uvbook/index.html
В частности, есть глава, посвященная чтение / запись файлов.
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);
}
}
Потратьте некоторое время на чтение книги, если вы хотите написать C ++ для node.js. Это стоит того.
Других решений пока нет …