Yes, I am interested, so thanks for sharing. I don't see 2!:13 in the
gpl src or in the dictionary. Wouldn't it be possible to write a
library and call it from j to return errno? Perhaps more work than
it's worth

On Thu, Mar 13, 2014 at 10:06 AM, Raul Miller <[email protected]> wrote:
> I'm inclined to lay the blame for this one on the OS.
>
> The defect in J is that there's no good way of getting at errno.
>
> http://www.openbsd.org/cgi-bin/man.cgi?query=system&apropos=0&sektion=3&manpath=OpenBSD+Current&arch=i386&format=html
>
> I imagine that 2!:13 should return the value of errno.
>
> For now, though, I think I know how to get at that value. I spent way too
> much time grovelling through disassembled code and register dumps in gdb
> last night - there's something about the way libc is implemented that I do
> not understand (and the i386 architecture is a pain to work with, at least
> for me), but I think I know how to get at the underlying fault, the next
> time this happens.
>
> I should be a lot better at this, but the focus of my work at usatoday has
> spoiled me for this kind of thing, and in many ways I feel like I'm a
> beginner again, on a variety of technical fronts. On the positive side,
> though, I imagine that people can learn from my posts here. (Only those
> that are interested, of course - people's interests vary over quite a wide
> range.)
>
> Thanks,
>
> --
> Raul
>
>
>
>
> On Thu, Mar 13, 2014 at 8:10 AM, Joe Bogner <[email protected]> wrote:
>
>> Not sure if it helps, but I ran this for 3 hours this morning and
>> didn't have any errrors:
>>
>> go=: 3 : 0
>> for_i. i. 1e7 do.
>> 2!:0 'date'
>> 2!:0 'sleep .1'
>> 2!:0 'date >/tmp/f1;:'
>> end.
>> )
>>
>> go''
>>
>> JVERSION
>> Engine: j701/2011-01-10/11:25
>> Library: 7.01.088
>> Platform: Linux 64
>> Installer: j701a_linux64.sh
>> InstallPath: /home/joebo/j64-701
>>
>>
>> On Wed, Mar 12, 2014 at 10:08 PM, Raul Miller <[email protected]>
>> wrote:
>> > I'm not sure why that '   > ' is five characters instead of three.
>> Probably
>> > it was specified as 3 characters with spaces surrounding the '>' but that
>> > got interpreted as three spaces followed by '> '.
>> >
>> > In any event, it's just: command string followed by '   > ' followed by
>> > temporary file name.
>> >
>> > Meanwhile, it would have been more useful if it had been
>> '>',tmpfilename,'
>> > ',command -- that way if the command had a redirect in it, it would just
>> > work. As it is, one must do something a little extra to redirect to a
>> file
>> >
>> > Anyways, here's an example of the problem in action:
>> >
>> > |interface error: spawn
>> > |spawn[:0]
>> >       2!:0 'date >/tmp/f1;:'
>> > |interface error
>> > |       2!:0'date >/tmp/f1;:'
>> >       ^D
>> > real    121m42.418s
>> > user    71m39.468s
>> > sys     12m58.545s
>> > ~$ ls -lart /tmp
>> > total 8
>> > drwxr-xr-x 23 root root 4096 Mar  9 14:12 ..
>> > drwxrwxrwt  2 root root 4096 Mar 13 01:19 .
>> >
>> > And, here's an example of successfully redirecting to a file:
>> >
>> >    2!:0 'date >/tmp/f2;:'
>> >
>> > The ;: at the end of the command string terminates the command with the
>> > redirect and follows it with an empty command which does nothing. The
>> > redirect then takes effect on that command (thus 2!:0 returns nothing).
>> >
>> > ~$ cat /tmp/f2
>> > Thu Mar 13 02:04:09 UTC 2014
>> >
>> > Anyways, I've got jconsole running under gdb, and I'll see if the C
>> > debugger can tell me anything about the problem.
>> >
>> > Thanks,
>> >
>> > --
>> > Raul
>> >
>> >
>> >
>> > On Wed, Mar 12, 2014 at 9:27 PM, Joe Bogner <[email protected]> wrote:
>> >
>> >> On Wed, Mar 12, 2014 at 9:16 PM, Joe Bogner <[email protected]>
>> wrote:
>> >> > I can't figure out by looking at it how the tmpnam gets
>> >> > added to the system command.  I'm used to seeing popen
>> >> >
>> >> >
>> >>
>> https://github.com/openj/core/blob/18fd23bbdc2f50770eb3047e978cd5e4e3b47039/xh.c#L39
>> >> >
>> >>
>> >> Scratch that, I figured out how it gets added. It's appending it to
>> >> the end of the pointer. The number 5 still has me confused and the " >
>> >> ". Anyways, I don't think this is helping unless it has something to
>> >> do with 5 and exceeding the number of temporary files or something
>> >> like that. Probably a false trail of thought
>> >> ----------------------------------------------------------------------
>> >> For information about J forums see http://www.jsoftware.com/forums.htm
>> >>
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to