Thread overview
C++ thread
Mar 26, 2018
hsencan
Mar 28, 2018
hsencan
March 26, 2018

Merhaba,

#include <iostream>
#include <fstream>
#include <string>
#include <thread>
using namespace std;

struct Client{
	int ID;
	string name;
	string surname;
};
void printTextFile();
int main(){

	fstream File("records.bat",ios::in|ios::out|ios::binary);

	if(!File.is_open())
		exit(0);

	Client client;
	Client blank;
	client.ID=1;
	client.name="Huseyin";
	client.surname="Sencan";

	File.seekp(client.ID*sizeof(Client));
	File.write(reinterpret_cast<const char*>(&client),sizeof(Client));

	File.seekg(client.ID*sizeof(Client));
	File.read(reinterpret_cast<char*>(&blank),sizeof(Client));

	cout<<blank.name<<" "<<blank.surname<<" "<<blank.ID;
}

Bu kodda 'void printTextFile()' isimli fonksiyonu bir thread ile bağlayıp '.bat 'dosyasında herhangi bir değişiklik olduğu zaman bunu '.txt'
uzantılı dosyaya yazmasını sağlamak için nasıl bir yol izlemem gerekir ?

Umarım anlatabilmişimdir.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 28, 2018

Burada amacımı tam açıklayamamışım.
txt dosyasına sadece .bat doyasındaki değişiklikleri loglamayı düşünüyordum. Biraz araştırdım thread kullanmaya gerek yok. Onun yerine Observer design pattern kullanmak daha iyi olur gibi geldi :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 27, 2018

Dosya değişiklikleri işletim sistemi olanaklarıyla öğreniliyor. Linux'taki inotify ve diğerleri şurada:

https://stackoverflow.com/questions/61253/how-to-be-notified-of-file-directory-change-in-c-c-ideally-using-posix

C++'ta işletim dizisi başlatmayı hatırlamıyorum ama çok örneği olmalı. İşte bir tane: :)

http://www.cplusplus.com/reference/thread/thread/

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 28, 2018

Soru "thread'le nasıl yaparım" olunca yanıt da thread içeriyor. :)

Observer design pattern aynı program içinde bir işlevin (veya sınıfın) başka bir sınıfa "değişiklikleri bana bildir" demesi anlamına geliyor. Eğer .bat dosyasındaki değişiklikler bu program tarafından yapılıyorsa tamam, öyle halledebilirsin. (Aslında thread dediğine göre tabii ki öyle: değişiklikleri bu program yapıyor.)

inotify vs. de "observer" düzeneği kabul edilirler. Onlar değişiklikler başka program tarafından yapıldığında da kullanılabiliyorlar.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]