Witam,
Chciałbym napisać program który w jednym nowo utworzonym wątku będzie dodawał dane linijka po linijce do pliku tekstowego, a drugi wątek będzie odczytywał te dane linia po linii (jeśli to możliwe to najlepiej jeśli by od razu usuwał "przeczytaną" linijkę).
Program piszę w C++ Builderze (ale w języku C) więc z wątkami nie ma problemu (TThreads) - chodzi jedynie o dostęp do pliku. Jak to zrealizować?
W pierwszym wątku otwieram plik funkcją fopen("test.txt", "a").
Można prosić o jakieś wskazówki jak teraz zrobić żeby drugi wątek odczytywał od początku pliku do końca dane linijka po linijce, jednocześnie usuwając tą przeczytaną?
Myślałem żeby zrobić ciągłe odpytywanie czy coś zostało dodane do pliku, ale nawet to nie działa - od razu wątek się kończy po uruchomieniu. Oto kod:
void __fastcall MyThread::Execute()
{
if ((plik=fopen("test.txt", "r"))==NULL) {
Application->MessageBox(L"Błąd otwierania pliku.",L"Błąd!", MB_OK | MB_ICONWARNING);
}
while(1)
{
if(!feof(plik))
{
//jakaś operacja...
}
}
}