[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: file:write() fails silently for read-only files
- From: Josh Simmons <simmons.44@...>
- Date: Tue, 6 Sep 2011 17:18:02 +1000
On Tue, Sep 6, 2011 at 5:16 PM, Josh Simmons <simmons.44@gmail.com> wrote:
> On Tue, Sep 6, 2011 at 5:09 PM, HyperHacker <hyperhacker@gmail.com> wrote:
>> On Tue, Sep 6, 2011 at 00:51, Josh Simmons <simmons.44@gmail.com> wrote:
>>> On Tue, Sep 6, 2011 at 4:39 PM, HyperHacker <hyperhacker@gmail.com> wrote:
>>>> Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
>>>>> f=io.open('foo.foo', 'r')
>>>>> f:write('ffd')
>>>>> f:close()
>>>>>
>>>>
>>>> Call me crazy, but I feel like f:write() should throw an error when
>>>> trying to write to a read-only file, instead of just doing nothing.
>>>>
>>>> --
>>>> Sent from my toaster.
>>>>
>>>>
>>>
>>> Check the return value of write.
>>>
>>>
>>
>> I get "bad file descriptor" which seems rather misleading. No return
>> value is documented in the manual though.
>>
>> --
>> Sent from my toaster.
>>
>>
>
> Odd that it's not mentioned.
>
> All IO functions use the luaL_fileresult function however, which uses
> errno+strerror to report any error message and so the actual error
> message is outside Lua's control.
>
The error message does make sense too when you consider that you're
calling the write function and passing a fd, the descriptor is invalid
for the given function.