home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / c / 16128 < prev    next >
Encoding:
Text File  |  1992-11-08  |  2.0 KB  |  54 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!netnews!bandy
  3. From: bandy@netnews.jhuapl.edu (Mike Bandy)
  4. Subject: Re: DEC VMS VERSION OF C - HOW TO ASSIGN FILE NAME?
  5. Message-ID: <BxC0AB.GvA@netnews.jhuapl.edu>
  6. Organization: JHU/Applied Physics Laboratory
  7. References: <92310.16240634R33O7@CMUVM.CSV.CMICH.EDU>
  8. Date: Sat, 7 Nov 1992 05:51:47 GMT
  9. Lines: 43
  10.  
  11. Robert A Rawlinson <34R33O7@CMUVM.CSV.CMICH.EDU> writes:
  12.  
  13. >I HAVE A COUPLE OF STUDENTS DOING SOME C PROGRAMING FOR ME. I AM NOT A
  14. >GOOD C PROGRAMER SO I COULD NOT SEEM TO FIND THE ANSWER IN THE MANUALS.
  15. >IN COBOL I CAN CODE A FILE NAME AND THEN WHEN I RUN THE PROGRAM I CAN
  16. >ASSIGN A FILE NAME AND DIRECTORY. MY STUDENTS CODE IN C AND INDICATED THE
  17. >FILE AND DIRECTORY HAVE TO BE HARD CODED. I SUSPECT THERE IS A WAY TO
  18. >USE A NAME THAT I COULD ASSIGN A FILE AND DIRECTORY TO LATER AS IN COBOL.
  19. >COULD SOMEONE POINT ME IN THE CORRECT DIRECTION TO SOLVE THIS?
  20. >THANKS
  21. >BOB
  22.  
  23. File handling as you require is not part of the C or Cobol RTL but built into
  24. the operating system.  Use a logical name in your program, let's call it FOO.
  25. Then you open FOO using the fopen routine:
  26.     fd=fopen("FOO","r");
  27. FOO is now hardcoded into the program -- but from DCL you can point FOO anywhere
  28. you want using the DEFINE verb (or use ASSIGN if you'd rather).  Like:
  29.     $ DEFINE FOO DISK$USER1:[DIR1]FILE1.XXX
  30. Run your program against FILE1.XXX
  31.     $ DEFINE FOO DISK$USER2:[DIR99]FILE99.XXX
  32. Run your program against FILE99.XXX
  33.  
  34. You also have the option of passing the file name on the command line using
  35. the parameters on main().  For example, code your C routine like:
  36.     main(int argc, char **argv)
  37. Then the filename is retrieved using argv[1] (check argc to be sure that it's
  38. at least 2).
  39.  
  40. This requires you to create a local symbol from DCL for the program prior 
  41. to it's execution.  Like this:
  42.     $ MYUTIL :== $MYDISK:[MYDIR]MYPROG
  43.  
  44. Then run it like:
  45.     $ MYUTIL DISK$USER12:[DIR21]FILE21.XXX
  46.  
  47.  
  48.  
  49. -- 
  50.  
  51.     Mike Bandy
  52.     bandy@aplcomm.jhuapl.edu
  53.     Johns Hopkins University / Applied Physics Lab
  54.