Typically you wouldn't as the compiler might complain if you tried. The long is an signed integer type whereas char * is a pointer. A long may have a value stored in it that can be taken as a pointer but you'd have to be pretty sure how it was derived. The long is also signed, which means it can't accurately describe a 4 Gig address space though, again, the compiler might deal with that in conversion.
That said, if you want to make the attempt, you don't actually convert a long to a char *. Instead you'd take a long and cast its value into an existing char *.
long biggienum = 492342342;
char *mypointer = (char *) biggienum;
biggienum gets assigned a value somwhere and mypointer is assigned that value but cast as a (char *). mypointer would then act as a pointer, hopefully with a value that points to a valid character or character string.
Lilith, Night Butterfly
I'm not a programmer but I play one in the office