提交 a6f06d24 编写于 作者: B bernard.xiong

add stdin, stdout, stderr implementation in newlib.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1029 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 363ad228
#include <rtthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
void libc_system_init(const char* tty_name)
{
int fd;
/* init console device */
rt_console_init(tty_name);
/* open console as stdin/stdout/stderr */
fd = open("/dev/console", O_RDONLY, 0); /* for stdin */
rt_kprintf("stdin: %d\n", fd);
fd = open("/dev/console", O_WRONLY, 0); /* for stdout */
rt_kprintf("stdout: %d\n", fd);
fd = open("/dev/console", O_WRONLY, 0); /* for stderr */
rt_kprintf("stderr: %d\n", fd);
}
#ifndef __RTT_LIBC_H__
#define __RTT_LIBC_H__
void libc_system_init(const char* tty_name);
#endif
......@@ -51,6 +51,8 @@ _getpid_r(struct _reent *ptr)
int
_isatty_r(struct _reent *ptr, int fd)
{
if (fd >=0 && fd < 3) return 1;
/* return "not supported" */
ptr->_errno = ENOTSUP;
return -1;
......@@ -198,3 +200,18 @@ _free_r (struct _reent *ptr, void *addr)
{
rt_free (addr);
}
#ifdef RT_USING_FINSH
#include <finsh.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
void nltest()
{
printf("stdout test!!\n");
fprintf(stdout, "fprintf test!!\n");
fprintf(stderr, "fprintf test!!\n");
}
FINSH_FUNCTION_EXPORT(nltest, newlib test);
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册