我需要测试以下情况:在 QNX 系统上运行的 C 程序可以打开文件但无法读取它。我的任务是确保在这种情况下程序提供正确的错误消息。 操作文件权限不起作用。
有人知道如何模拟这种情况吗?预先非常感谢您
最佳答案
首先,您必须通过在后台运行的另一个进程锁定文件。 Perl 中的示例 (file_lock.pl):
#!/usr/bin/perl
use Fcntl qw(:flock SEEK_END);
my $fh = '/file/that/needs/to/be/locked';
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
seek($fh, 0, SEEK_END) or die "Cannot seek - $!\n";
while (true) {}
在后台运行该脚本,它将锁定您需要的文件:
root@server:~# perl file_lock.pl &
然后运行您的 C 代码并测试错误处理是否正常工作。
关于c - 文件可以打开但无法读取 QNX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28451346/