Mail Archives: cygwin/2003/04/09/09:11:09
On 8 Apr, Igor Pechtchanski wrote:
| Larry,
|
| It may be more complicated than that. unlink() calls DeleteFile(), and
| who knows what happens in the guts of it. For instance, I'm having a
| permission problem with deleting files on a Samba share from inside of
| applications (but no problems deleting them from the shell). I've traced
| it as far as the DeleteFile() call, which fails in the former case and
| succeeds in the latter. Go figure...
|
| My advice to the OP, though, is to check all the return codes, especially
| for system calls.
| Igor
|
| On Tue, 8 Apr 2003, lhall AT pop DOT ma DOT ultranet DOT com wrote:
|
|> Running on a FAT partition perhaps?
|>
|> You may find a review of the code for unlink() (remove() calls this)
|> call in the Cygwin DLL interesting. You might find it even more interesting
|> to build your own debug version of cygwin1.dll and stop in this function.
|> ;-)
|>
|> Still sounds allot like you're having a permission problem on delete.
|>
|> Larry
|>
|> Original Message:
|> -----------------
|> From: dmay AT tvi DOT edu
|> Date: Tue, 8 Apr 2003 16:44:06 -0600 (MDT)
|> To: cygwin AT cygwin DOT com, dmay AT tvi DOT edu
|> Subject: Re: Problem with database engine on Cygwin
|>
|>
|> On Monday, Apr 7, 2003 I posted a query re. an issue I am having using a
|> database engine I wrote with Cygwin. Through the use of Asserts() and
|> liberal
|> printf()s I have traced the problem down to a single line of code.
|> Basically,
|> the code does the following:
|>
|> int fd;
|> fd = creat ("SSNumberIndex.inx", 0644);
|>
|> This is failing with a "permission denied" system error. In terms of the
|> order of how things are done, the file SSNumberIndex.inx is unattached from
|> an
|> old table, deleted, and then recreated. It is during this recreation that I
|> am having the problem. There is not a file with this name in the current
|> directory (it is deleted through a remove() system call, and the system
|> indicates that the removal is successful).
|>
|> I have tried the following CYGWIN environment variables:
|>
|> set CYGWIN=nontsec tty glob
|> set CYGWIN=nontsec tty glob binmode
|> set CYGWIN=ntsec tty glob binmode
|> set CYGWIN=ntsec tty glob
|>
|> All to no avail. I have read the sections on file permissions and text and
|> binary modes in Chapter 3 of the User Guide. I have skimmed through the
|> FAQ.
|> I don't see anything that resembles this issue. My apologies if I just
|> missed it.
|>
|> Any ideas would be appreciated. Thanks in advance.
|
| --
| http://cs.nyu.edu/~pechtcha/
| |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu
| ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com
| |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski
| '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
|
| Knowledge is an unending adventure at the edge of uncertainty.
| -- Leto II
This is an NTFS partition on Windows 2000, not a FAT partition. On the file
deletion, I check the return value and it checks out OK. In stepping through
the code, I get a return value of 0 from the delete call. At that point, the
file no longer shows up in file listings. It is when I try to recreate the
file with creat() that I get the "permission denied" error. Is it possible
that the file isn't really deleted, even though the return value indicates the
delete was successful?
Thanks for the ideas. I thought before I started debugging this problem that
I did a pretty good job of monitoring return values...I obviously have some
work to do :o<
--
=================================
David May
Senior UNIX System Administrator
Albuquerque TVI
505-224-3015
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -