gpt4 book ai didi

javascript - node.js读取txt文件,而c在其中写入

转载 作者:行者123 更新时间:2023-11-30 17:03:50 28 4
gpt4 key购买 nike

如果这不是不可能的话,我希望我的node.js函数从文件中读取,同时c程序在其中写入。 Node.js 函数在 c 写入时无法读取,我想删除该锁。我还需要 Node 功能在读取“文件结束!”之前不会停止。

c程序:

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main(int argc,char *argv[]) {

int simulationLength,simulationStep,simulationStepNum,i,time;
FILE *f;

if(argc != 3) {
printf("Bad input!\n");
return 1;
}



simulationLength = atoi(argv[1]);
simulationStep = atoi(argv[2]);

simulationStepNum = simulationLength/simulationStep;
f=fopen("exit.dat","w");

for(i=0;i<simulationStepNum;i++) {
time = rand()%10;
fprintf(f,"TStep %d, Time=%d\n",i,time);
sleep(time);
if(i%10 == 0)
fprintf(f,"Internal error!\n");
}
fprintf(f,"End of file!\n");
fclose(f);
}

node.js 函数:

var readline = require('readline');
var fs = require('fs');

module.exports = function() {
var file = 'app/webmus/app/wemus-cluster-simulation/exit.dat';
var eof = 'End of file!';

var lineReader = readline.createInterface({
input: fs.createReadStream(file)
});

lineReader.on('line', function(line) {
if (line == eof) lineReader.close();
console.log(line);
}).on('close',function(){
process.exit(0);
});;
}

最佳答案

您还可以通过刷新内容将更改推送到文件:

for(i=0;i<simulationStepNum;i++) {
time = rand()%10;
fprintf(f,"TStep %d, Time=%d\n",i,time);

// flush data from buffers to disk.
fflush(f);

sleep(time);
if(i%10 == 0)
fprintf(f,"Internal error!\n");
}

我确信,这应该可以解决您的问题。同样,如果您在 *nix 环境中,命名管道最适合此类工作。

关于javascript - node.js读取txt文件,而c在其中写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36000902/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com