1 #include <stdlib.h> 2 #include <unistd.h> 3 #include <assert.h> 4 5 void _assert(char * f,unsigned line)6_assert(char *f, unsigned line) 7 { 8 char buf[20], *p, *s = &buf[20]; 9 write(2, "assertion failed: file ", 23); 10 for(p = f; *p; p++) continue; 11 write(2, f, p-f); 12 write(2, ":", 7); 13 *--s = '\n'; 14 do *--s = line%10 + '0'; while (line /= 10); 15 write(2, s, &buf[20] - s); 16 abort(); 17 18 } 19