AW: [cvsnt] Unix Slashes on Temp Drives

Haible Pascal haible at heidenhain.de
Thu Oct 17 17:47:08 BST 2002


> From: Tony Hoyle [mailto:tmh at nodomain.org] 
> > On Wed, 16 Oct 2002 15:18:36 +0000, Clipper, Chris wrote: 
> > > Using 1.11.1.3 Build 57j on Windows 2000 Server with SP3 as our cvs
server 
> > > with an nt wkstn client. 
> > > 
> > > I keep getting.... 
> > > 
> > > !MESSAGE Valid requests operation failed: can't create temporary
directory 
> > > C:\cvstemp/cvs-serv2148 
> > > 
> > > This is through Eclipse but the problem seems to be the appending of
the 
> > > unix forward slash that forces a failure to create the subdirectory. 
> > > 
> > This is because the user trying to login doesn't have write access to 
> > c:\cvstemp.  NT doesn't care about slashes. 
> > Tony 

> When at the command prompt I get the following: 
> C:\cvstemp>mkdir \cvstemp\test1 
> C:\cvstemp>mkdir /cvstemp/test1 
> The syntax of the command is incorrect. 
> C:\cvstemp>mkdir \cvstemp/test1 
> The syntax of the command is incorrect. 
> Win2K doesn't seem to like the forward slashes. 
> The drive itself has Full Control for Everyone and Network. Is there any
other user group I should add Full Control for?

Tony was talking about the OS, not the shell or its commands.
Many MS tools take text following forward slashes as options,
unix tools running on Windows usually don't.

Take the following C program, save it as e.g. 'mytouch.c', compile and run
it
with a filename as argument. It will happily work with forward slashes.

Pascal

P.S. New unix users keep asking "Why doesn't unix use backslashes like
Windows does"
and I keep telling them: wrong question! Should be: "Why doesn't Windows use
forward slashes like unix does".
The history behind it:
When MS built (bought/...?) DOS version 1, it looked like a tiny unix with
some bits of CP/M. To have some resemblance to CP/M (or not too much to
unix)
they introduced the forward slash as option symbol.
When it was time to introduce directories with DOS version 2, the forward
slash was already used, and the had to choose something different as the
path separator character.
So they took the backslash, and since then many people around the world 
have been cursing at them because they have to nearly break their fingers to
type it.
So the answer to the second question is: Compatibility with DOS version 1.
Fortunately, this applies to the command line, but not the API.

------------snip-------------
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
	FILE *f;
	if (argc>1)
	{
		f = fopen(argv[1], "a");
		if (!f)
		{
			perror(argv[1]);
			return EXIT_FAILURE;
		}
		fclose(f);
	}
	return EXIT_SUCCESS;
}
------------snip-------------




More information about the cvsnt mailing list