In languages with pointers or references, one solution is to return a pointer to a value, rather than the value itself. This return pointer can then be set to null to indicate an error. It is typically suited to functions that return a pointer anyway. This has a performance advantage over the OOP style of exception handling, with the drawback that negligent programmers may not check the return value, resulting in a crash when the invalid pointer is used. A common pattern in the UNIX environment is setting a separate variable to indicate the cause of an error. An example of this is the C standard library codice_9 function.