3 ms·
The shell can do whatever processing it likes but at the end of the day all that's passed to the application is a string. The string may or may not be what a us
by ChrisSD 6y ago
The shell can do whatever processing it likes but at the end of the day all that's passed to the application is a string. The string may or may not be what a user typed but the application has no knowledge of that.
- kevin_thibedeau 6y agoIt isn't done by the shell on Windows.
- ChrisSD 6y agoThe shell is whatever you use as a shell. Be that cmd, powershell or your own invention. My point is that it doesn't matter. The shell can process the command line however it likes but all the application receives is a single string. The application can then do whatever it likes with the string. Sure you can use an entry point that parses the arguments in different ways but that's still the application parsing the string. You're just using a library function to do the parsing instead of doing it manually. At no point does "Windows" do anything. As far as its concerned it's just a string being passed in at process creation.
- mortehu 6y agoIf it's not the shell and not the application, are you saying there's a kernel setting that enables glob expansion? I suspect you're really talking about linking to setargv.obj?
- kevin_thibedeau 6y agoYou link an alternate library into the application and it will expand args for you.