As a follow up to this question ....
Now I found the answer for that question by a comment by user j_random_hacker. Here Windows follows 8.3 file naming standard means turbo c can only read files with name length of 8 characters and extension of 3 characters. So windows will give another name to any file which is not following 8.3 naming standard. Like in my case Windows was giving HIBDS~1.TTC for the actual file name of HI.TTCN .
Now my problem is I want to take that file name as an argument at runtime as shown below
glc hi.ttcnHere glc is my .exe file which will check the coding guidelines violations and hi.ttcn is the actual TTCN file to be checked. So here the problem is as told above windows is giving some other name to hi.ttcn so my program is not able to open that file saying "File name does not exists" because I am giving the same argument string "hi.ttcn" to fopen. So how can I get the windows allocated file name at run time for the given argument string ( means I want to get the string "HIBDS~1.TTC" when "HI.TTCN" is given.)
I believe this can be done, but it's tricky as it requires delving into hairy Win32 API calls. It will be much easier to simply recompile using a modern compiler -- is there any reason why this can't be done?
Here are links to two free, high quality C/C++ compilers that will have no trouble with long filenames: Microsoft Visual C++ Express Edition; MinGW.