std::cin in Fiasco/L4Re (with 'make qemu')
j.stark at tum.de
Sun Sep 21 00:21:14 CEST 2014
>I'm not sure where you enter this.
>For me, the following works quite fine:
> printf("Press some key: ");
> char c = getchar();
> printf("\nYour input: %c (%d)\n", c, c);
> printf("Enter a number: ");
> int number;
> scanf("%x", &number);
> printf("Your number: %d\n", number);
> return 0;
If I copy this code into the hello example, and change the Makefile accordingly:
PKGDIR ?= ../..
L4DIR ?= $(PKGDIR)/../..
TARGET = hello
SRC_C = main.c
REQUIRES_LIBS = libc_be_file_stdin
I can successfully run it IF moe runs hello directly
(without Ned and a config, as a "make qemu E=hello" does).
If, however, hello is run through a config file and therefore Ned,
as in hello-cfg, it doesn't work. Execution does not halt and outputs
MOE: Starting: rom/ned rom/hello.cfg
MOE: loading 'rom/ned'
Ned says: Hi World!
Ned: loading file: 'rom/hello.cfg'
hello | Press some key:
hello | Your input: � (-1)
hello | Enter a number: Your number: -2147450972
How to make it work? Pass a certain capability to hello?
More information about the l4-hackers