Re: unix semantics fuck up

2013-04-15 Thread sven falempin
On Mon, Apr 15, 2013 at 10:44 AM, sven falempin wrote:

> *-i*[*extension*]
>
> -i"\.sed"
>
> but wow, nice way to destroy file.
>
> oh , it is tmpfs related :-)


>
> On Mon, Apr 15, 2013 at 8:12 AM, Marc Espie  wrote:
>
>> $ cat goodfilename
>> coincoin
>>
>> $ perl -pi -e 's/toto/tutu/' goodfilename
>> works
>>
>> $ cp goodfilename /tmp
>> $ perl -pi -e 's/toto/tutu/' /tmp/goodfilename
>> Can't do inplace edit on goodfilename: File exists.
>> $ cat /tmp/goodfilename
>> cat: /tmp/goodfilename: No such file or directory.
>>
>> ktrace shows a disturbing lack of Unix semantics:
>>  
>>  15350 perl CALL  open(0x1850b9e863f0,0)
>>  15350 perl NAMI  "goodfilename"
>>  15350 perl RET   open 3
>>  ...
>>  15350 perl CALL  unlink(0x1850b9e86a00)
>>  15350 perl NAMI  "goodfilename"
>>  15350 perl RET   unlink 0
>>  15350 perl CALL
>>  open(0x1850b9e868e0,0xa01,0x180)
>>  15350 perl NAMI  "goodfilename"
>>  15350 perl RET   open -1 errno 17 File exists
>>
>>
>> err...
>>
>> simply put:
>>
>> #include 
>> #include 
>> #include 
>>
>> int
>> main()
>> {
>> if (open("fucked_up", O_RDWR|O_CREAT|O_TRUNC, 0666) == -1)
>> perror("open");
>> if (unlink("fucked_up") != 0)
>> perror("unlink");
>> if (open("fucked_up", O_WRONLY|O_CREAT|O_EXCL, 0666) == -1)
>> perror("reopen");
>> return 0;
>> }
>>
>>
>
>
> --
>
> -
> () ascii ribbon campaign - against html e-mail
> /\
>



-- 
-
() ascii ribbon campaign - against html e-mail
/\


Re: unix semantics fuck up

2013-04-15 Thread sven falempin
*-i*[*extension*]

-i"\.sed"

but wow, nice way to destroy file.


On Mon, Apr 15, 2013 at 8:12 AM, Marc Espie  wrote:

> $ cat goodfilename
> coincoin
>
> $ perl -pi -e 's/toto/tutu/' goodfilename
> works
>
> $ cp goodfilename /tmp
> $ perl -pi -e 's/toto/tutu/' /tmp/goodfilename
> Can't do inplace edit on goodfilename: File exists.
> $ cat /tmp/goodfilename
> cat: /tmp/goodfilename: No such file or directory.
>
> ktrace shows a disturbing lack of Unix semantics:
>  
>  15350 perl CALL  open(0x1850b9e863f0,0)
>  15350 perl NAMI  "goodfilename"
>  15350 perl RET   open 3
>  ...
>  15350 perl CALL  unlink(0x1850b9e86a00)
>  15350 perl NAMI  "goodfilename"
>  15350 perl RET   unlink 0
>  15350 perl CALL
>  open(0x1850b9e868e0,0xa01,0x180)
>  15350 perl NAMI  "goodfilename"
>  15350 perl RET   open -1 errno 17 File exists
>
>
> err...
>
> simply put:
>
> #include 
> #include 
> #include 
>
> int
> main()
> {
> if (open("fucked_up", O_RDWR|O_CREAT|O_TRUNC, 0666) == -1)
> perror("open");
> if (unlink("fucked_up") != 0)
> perror("unlink");
> if (open("fucked_up", O_WRONLY|O_CREAT|O_EXCL, 0666) == -1)
> perror("reopen");
> return 0;
> }
>
>


-- 
-
() ascii ribbon campaign - against html e-mail
/\


unix semantics fuck up

2013-04-15 Thread Marc Espie
$ cat goodfilename
coincoin

$ perl -pi -e 's/toto/tutu/' goodfilename
works

$ cp goodfilename /tmp
$ perl -pi -e 's/toto/tutu/' /tmp/goodfilename
Can't do inplace edit on goodfilename: File exists.
$ cat /tmp/goodfilename
cat: /tmp/goodfilename: No such file or directory.

ktrace shows a disturbing lack of Unix semantics:
 
 15350 perl CALL  open(0x1850b9e863f0,0)
 15350 perl NAMI  "goodfilename"
 15350 perl RET   open 3
 ...
 15350 perl CALL  unlink(0x1850b9e86a00)
 15350 perl NAMI  "goodfilename"
 15350 perl RET   unlink 0
 15350 perl CALL  
open(0x1850b9e868e0,0xa01,0x180)
 15350 perl NAMI  "goodfilename"
 15350 perl RET   open -1 errno 17 File exists


err...

simply put:

#include 
#include 
#include 

int 
main()
{
if (open("fucked_up", O_RDWR|O_CREAT|O_TRUNC, 0666) == -1)
perror("open");
if (unlink("fucked_up") != 0)
perror("unlink");
if (open("fucked_up", O_WRONLY|O_CREAT|O_EXCL, 0666) == -1)
perror("reopen");
return 0;
}