Я пытаюсь написать самый короткий код, чтобы иметь дескриптор файла блокировки.
Я установил первый: O_NONBLOCK
Второй: ICANON, [VMIN], [VTIME] для моего файлового дескриптора ...
Какие еще опции мне нужно установить, чтобы получить файл блокировкидескриптор?
(sample.txt пуст и открыт () в другом режиме ничего не меняет)
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
void set_blocking(int fd, int blocking) {
int flags = fcntl(fd, F_GETFL, 0);
if (blocking)
flags &= ~O_NONBLOCK;
else
flags |= O_NONBLOCK;
fcntl(fd, F_SETFL, flags);
return;
}
int main(){
int fd;
char buff[100];
struct termios options;
options.c_lflag &= ~ICANON;
options.c_cc[VMIN] = 2;
options.c_cc[VTIME] = 0;
fd = open("sample.txt",O_RDWR);
tcsetattr(fd, TCSANOW, &options);
set_blocking(fd,1);
read(fd,buff,2);
printf("%s\n",buff);
return 0;
}