2015-02-11 2 views
0

Мне нужно проверить следующую ситуацию: программа на C, которая работает в QNX-системе, может открыть файл, но не может его прочитать. Моя задача - убедиться, что в этой ситуации программа доставляет правильное сообщение об ошибке. Манипулирование разрешениями файлов не работает.Файл можно открыть, но не прочитать QNX

Есть ли у кого-нибудь идеи, как имитировать эту ситуацию? Заранее спасибо

ответ

0

Сначала вам нужно заблокировать файл другим процессом, который работает в фоновом режиме. Пример в 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) {} 

Выполнить этот скрипт в фоновом режиме, он будет блокировать файл вам нужно:

[email protected]:~# perl file_lock.pl & 

Затем запустите код C и испытание при обработке ошибки работы правильно.