tzimmermann dot org

This is the website and blog of Thomas Zimmermann. Topics are picotm, transactions, and low-level software development.
On the web: 

Thomas Zimmermann • Sep 8, 2017 • 6 min read

malloc()'s Tricky Error Reporting

Most error checks for malloc() are incorrect. In this blog post, we’re going to look at the details of malloc()’s error reporting semantics and how to test if a call to malloc() succeeded.  Read →

Thomas Zimmermann • Sep 1, 2017 • 10 min read

The Internals of Unix Pipes and FIFOs

There is a series of blog posts examining the details of files and file descriptors, etc on Linux and Unix. This installment continues with the details of Unix FIFOs, how they work internally, and how they are used for communicating between processes.  Read →

Thomas Zimmermann • Aug 25, 2017 • 16 min read

The Strange strerror_r() of Dr POSIX and Mr GNU

There are several variants of the C function strerror_r() that differ in their return value and error handling. This blog post describes how to support all of them in a transactional interface, while still being compatible with either internal implementation. As such, strerror_r() serves as a case study for transactional interfaces with multiple or variable semantics.  Read →

Thomas Zimmermann • Aug 17, 2017 • 8 min read

File Descriptors During fork() and exec()

In the previous blog posts, we examined the relationship between files, file names, file descriptors, and open file descriptions. This time we look at what happens to file descriptors when we start a new program by calling fork() and exec().  Read →

Thomas Zimmermann • Aug 9, 2017 • Less than a minute read

picotm at FrOSCon 2017

I’m very excited to speak about picotm at this year’s FroSCon conference! The presentation is on August 19, 2pm. I’ll cover the use cases of picotm, some programming, and some internals. I look forward to see you there!  Read →