1 2 3 4 5 6 7 8 9 10 11 12 13
void __procfdname(char *buf, unsigned fd) { unsigned i, j; for (i=0; (buf[i] = "/proc/self/fd/"[i]); i++); if (!fd) { buf[i] = '0'; buf[i+1] = 0; return; } for (j=fd; j; j/=10, i++); buf[i] = 0; for (; fd; fd/=10) buf[--i] = '0' + fd%10; }