Use fstat() Use fstat whenever possible. Only use stat(), lstat(), or access() to provide proactive checks. "Hey, user, I think this won't work, would you like me to try anyway?" Just try the action safely. If it works, great. If not, deal with the error.