>From what I understood, Ratheesh wanted a compile time solution. My workaround will be to go for a Makefile based compilation. 1) "gcc -E yourfile.c" will preprocess only. so __FILE__ will be expanded . output file will be yourfile.c (with macro expanded) 2) then run your custom tool/bash script to trim the filepath to filename. use awk tool maybe. 3) Do the final compile using Gcc On Thu, Jun 2, 2011 at 12:41 AM, Michal Nazarewicz <mina86@xxxxxxxxxx> wrote: > > On Wed, 01 Jun 2011 20:08:50 +0200, Zhongye Jia <jia.zhongye@xxxxxxxxx> wrote: >> >> #include <stdio.h> >> >> int main() >> { >> char filename[] = __FILE__, *basename; >> basename = filename + sizeof(filename) - 2; >> while( basename+1 != filename && *basename != '/' ) { >> basename--; >> } >> basename++; > > And you are not using strchr() why? I know OP said about not using > string libraries but I don't think he meant that he's fine with > reimplementing the wheel. > >> printf("%s\n%s\n", filename, basename); >> return 0; >> } > > -- > Best regards, _ _ > .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o > ..o | Computer Science, Michal "mina86" Nazarewicz (o o) > ooo +-----<email/xmpp: mnazarewicz@xxxxxxxxxx>-----ooO--(_)--Ooo-- > -- > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html