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

Co to deskryptor pliku

VPS Starter Arubacloud
0 głosów
744 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ź 340 wizyt
pytanie zadane 3 grudnia 2020 w C i C++ przez Mateusz1223 Bywalec (2,440 p.)
0 głosów
1 odpowiedź 252 wizyt
pytanie zadane 13 listopada 2022 w C i C++ przez piotr_domanski Bywalec (2,040 p.)
0 głosów
0 odpowiedzi 479 wizyt
pytanie zadane 13 stycznia 2022 w C i C++ przez Nikso Nowicjusz (230 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...