views:

220

answers:

5

Hi

Do you know about any good library wrapping posix and linux functions and structures ( eg. sockets or file descriptors ) into C++ classes? For example I'm thinking about a base FileDescriptor class and some inheriting classes ( unix sockets etc ) with methods like write, read or even some syscalls ( sendfile, splice ) - all throwing exceptions instead of setting errno. Or some shared memory class etc.

I can't seem to find anything like that and by now I consider writing it myself, as I often have to write a C++ app for linux and either use C functions ( painful error checking ), or wrap them myself every time.

---EDIT---

Well neither QT nor Boost will compile on the system, we're using - it's a small linux kernel based on 2.4.29 installed on embedded computers.

+1  A: 

There's Qt - which is much more than a GUI library. Nokia call it "application and UI framework". The "application" part refers to Qt's wrapping of interfaces for files, sockets, threads, and much more.

Qt is C++, and IMHO one of the best designed C++ code bases out there, so it's definitely worth a try.

Eli Bendersky
+1  A: 

Qt tackles many of the problems which normally are platform dependent. GUI wise, but console stuff is covered too. e.g.:

Ronny
+1  A: 

Well, not exactly a wrapper, but Boost has a library for everything, and supports all major platforms.

Space_C0wb0y
+3  A: 

Boost has a number of portable interfaces for some of the things you need e.g. Boost.Interprocess or Boost.Asio.

TheJuice
+1  A: 

Try Common C++. I haven't used it myself, but it supports the things you've mentioned.

Dmitry Yudakov
That should be what I'm looking for, thanks
zbigh