"Delfin Rojas"
Calderon Hector wrote:
1.- I don't see how to lock a file (fstream) for reading/writing. Do I have to use OS functions?
As far as I know there is no "lockable fstream" class in boost. You should be able to implement it yourself using a mutex. In other words, you can use the fstream as a shared resource and lock the mutex before each read and write. You may want to look into the iostreams library and create a thread_safe_iostream.
boost::mutex io_mutex; struct synco { synco(std::ostream& os = std::cout) : os(os), lock(io_mutex) {} template <class T> std::ostream& operator<<(T const& x) { return os << x; } std::ostream& os; boost::mutex::scoped_lock lock; }; will allow you to do this: sync(std::cerr) << "hello" << std::endl << "world: " << 3.14159 << std::endl; And guarantee that it will all come out atomically, if all code writing to cerr uses the same protocol. -- Dave Abrahams Boost Consulting www.boost-consulting.com