在正在更新时读取txt文件中止 - Matlab

时间:2012-02-29 22:48:14

标签: matlab file-io concurrency locking text-files

我有2个Matlab运行实例。第一种是将数据写入.txt文件,另一种是读取该数据。

有没有办法验证是否正在访问.txt文件并因此抛出异常/错误?

我发现第二个Matlab实例无论如何都会读取数据但会生成一个错误,例如Horzcat等,同时也会更新.txt文件。

fName = 'Test.txt' ;

% Matlab Instance1
mat = 1 + (2-1)*randn(100000,5)   ;      mat = mat.' ;

[fid, fMsg] = fopen(fName, 'at') ;
if fid~=-1,  fprintf(fid, '%.10f\t%.10f\t%.10f\t%.10f\t%.10f\r\n', mat(:)) ; end
fclose(fid);

    % Matlab Instance2
    fid = fopen(fName);
    C = textscan(fid, '%f %f %f %f %f', 'Delimiter', '\t');
    C=cell2mat(C);
    fclose(fid);

1 个答案:

答案 0 :(得分:0)

在写入实例上,在打开文件进行写入之前创建一个名为“busyWriting.bla”的文件,在写完文件后删除该文件。在阅读实例中,用if(~exist('busyWriting.bla','file')) ... end

子句包围所有内容