Das könnte klappen...

Du musst dich aber um alle Resourcen kümmern. Am besten alles im Heap halten dann bei Close(fd) auch freigeben. std::string und co jegen große Sachen aber auch im Heap ab. Damit wird der Speicher voll und voller...

Edit: Heap: Frei Speicher.

Code:
std::string* buffer = new std::string;
beim Freigeben
Code:
Close(fd);
delete buffer;
...