LINUX.ORG.RU

Сообщения ANDREY_KAR

 

Закрытие и открытие файлов

Всем привет. Недавно начал изучать Линукс в универе, нам дали задание открытие и закрытие файлов. Можете подсказать как работает данный механизм в этой ОС. Я предполагаю, что по умолчанию любые процессы могут обращаться к файлу. К примеру я создал текстовый файл и обращаюсь к нему посредством двух дескрипторов, причем первый я не закрыл, и почему-то второй != -1.

Вот код программы:

''' #define _CRT_SECURE_NO_WARNINGS

#include <fcntl.h>

#include <stdio.h>

#include <string.h>

#include<unistd.h>

#include<errno.h>

#include

using namespace std;

int main()

{

char buffer[100];

char s[100];

int len, cb, cbw1;

int hstdin = 0, hstdout = 1, fhandle, fhan2, fhan3;

char fname[] = "12.txt";



fhandle = open(fname, O_RDONLY | O_CREAT);



if (fhandle == -1)

{

	cout << strerror(errno);

	return 1;

}



fhan2 = dup(fhandle);

fhan3 = open(fname, O_RDONLY | O_CREAT);



if (fhan2 == -1 && fhan3 == -1)

	return 1;



lseek(fhandle, 10, SEEK_SET);

printf(" h1 = %d  h2 = %d h3 = %d\n", fhandle, fhan2, fhan3);

fflush(stdout);



cb = read(fhandle, buffer, 7);

write(1, buffer, cb);

write(1, "\n", 1);



cb = read(fhan2, buffer, 7);

write(1, buffer,cb);

write(1, "\n", 1);



cb = read(fhan3, buffer, 7);

write(1, buffer, cb);

write(1, "\n", 1);

read(0, buffer, 1);



close(fhandle);

} '''

 

ANDREY_KAR
()

RSS подписка на новые темы