• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co to deskryptor pliku

Object Storage Arubacloud
0 głosów
761 wizyt
pytanie zadane 20 grudnia 2019 w C i C++ przez Jacob7 Użytkownik (540 p.)

Cześć. Może to dziwne pytanie, ale z żadnego wyniku w google nie rozumiem tego pojęcia.
Co to właściwie jest deskryptor pliku? Jak mam tego użyć, jest jakaś funkcja, co to robi w ogóle?

Mam na przykład takie zadanie: Napisz funkcję, która dostaje jako argument ścieżkę dostępu do pliku, otwiera plik do tekstowego czytania i zwraca jako wartość deskryptor świeżo otwartego pliku.

Nie rozumiem totalnie tego pojęcia, a przewija się to we wszystkich zadaniach, które mam zrobić. Proszę o pomoc. Nie chcę rozwiązania zadania, tylko jak ten deskryptor zrobić. C++

2 odpowiedzi

+3 głosów
odpowiedź 21 grudnia 2019 przez Scheduler Mądrala (6,950 p.)
wybrane 21 grudnia 2019 przez Jacob7
 
Najlepsza
Tłumacząc to na język ludzki:

Ponieważ w unix wszystko jest plikiem(a biblioteki std opierają się tak jakby na unixie), to trzeba było wymyśleć sposób, aby można było łatwo rozpoznać plik przez komputer. Ścieżki się do tego nienadawały, więc stworzono deskryptor pliku. Jest to zwykle int, a aby go pobrać używasz funkcji, gdzie jako parametr idzie ścieżka do pliku, a zwracany jest właśnie deskryptor. Czegoś jeszcze nie rozumiesz?
komentarz 21 grudnia 2019 przez Jacob7 Użytkownik (540 p.)
edycja 21 grudnia 2019 przez Jacob7
ifstream plik;
string sciezka="D:\\Program\\zad1.txt";
int funkcja1(string s)
{
	plik.open(s, ios::in);
	/* coś tam */
	plik.close();
	return    ;
}

W miarę rozumiem już o co chodzi.

Czyli standardowo sobie otwieram plik, tylko teraz co dać po return? Muszę zrobić jakąś zmienną i przypisać int x=plik.open, czy jak?

Potem zrobiłem coś takiego i wyświetliło mi "0", czyli chyba działa jeśli  dobrze rozumiem.

Dzięki wielkie za pomoc i Wesołych Świąt wszystkim winksmiley.

ifstream plik;
string sciezka="D:\\Program\\zad1.txt";
int deskryptor;
int funkcja1(string s)
{
	plik.open(s, ios::in);
	/* coś tam */
	plik.close();
	plik >> deskryptor;
	return deskryptor;
}
int main()
{
	int x= funkcja1(sciezka);
	cout << x;
	
    return 0;
}

 

1
komentarz 21 grudnia 2019 przez Scheduler Mądrala (6,950 p.)
W bibliotekach std c++ tak średnio można tą liczbę uzyskać bez kombinowania. Jeżeli musisz uzyskać ta liczbę, to przechodzisz do c. Tam można za pomocą fileno(FILE *struktura) ja wyciągnąć. I jest to w standardzie posix, nie C, więc uważaj. Aby uzyskać wymaganą strukturę poczytaj o otwieraniu plików w C.
komentarz 22 grudnia 2019 przez Jacob7 Użytkownik (540 p.)
Oki dzięki, na zajęciach programujemy w C++, dzięki za pomoc.
komentarz 22 grudnia 2019 przez tkz Nałogowiec (42,000 p.)

http://www.cplusplus.com/forum/general/225282/

Nie wiem co oznacza "bez kombinowania".

#include <fcntl.h>
int main() 
{
    unsigned char buffer[16];     
    int fd = open (argv[1], O_RDONLY);
    read(fd, buffer, sizeof(buffer));
    return 0;
}
komentarz 22 grudnia 2019 przez Scheduler Mądrala (6,950 p.)
Chodziło mi o fstream.
–1 głos
odpowiedź 20 grudnia 2019 przez Mavannkas Bywalec (2,290 p.)
Chodzi o coś w stylu że jeśli plik otwierasz jako np. fstream to funkcja zwraca właśnie ten fstream.
komentarz 20 grudnia 2019 przez Mavannkas Bywalec (2,290 p.)
zmienna przechowująca informacje o tym że plik jest otwarty
komentarz 21 grudnia 2019 przez Jacob7 Użytkownik (540 p.)
Czyli co że na przykład jeśli plik.good()==true to zwróci 1 a w przeciwnym razie 0?
Sorki, że tak tego nie kumam, moglibyście ewentualnie jakimś przykładem w kodzie rzucić najprostszym? Byłbym wdzięczny.
2
komentarz 21 grudnia 2019 przez tkz Nałogowiec (42,000 p.)

Podobne pytania

0 głosów
1 odpowiedź 356 wizyt
pytanie zadane 3 grudnia 2020 w C i C++ przez Mateusz1223 Bywalec (2,440 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 13 listopada 2022 w C i C++ przez piotr_domanski Bywalec (2,080 p.)
0 głosów
0 odpowiedzi 509 wizyt
pytanie zadane 13 stycznia 2022 w C i C++ przez Nikso Nowicjusz (230 p.)

92,548 zapytań

141,391 odpowiedzi

319,512 komentarzy

61,932 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...