Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Paranoid-up
rt-thread
提交
0522343b
R
rt-thread
项目概览
Paranoid-up
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
0522343b
编写于
2月 25, 2018
作者:
B
Bernard Xiong
提交者:
GitHub
2月 25, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1233 from RT-Thread/origin/stable-v2.1.x
fix the fopen issue.
上级
1a158e7e
63b05a8c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
49 addition
and
46 deletion
+49
-46
components/dfs/include/dfs_def.h
components/dfs/include/dfs_def.h
+6
-2
components/dfs/include/dfs_posix.h
components/dfs/include/dfs_posix.h
+13
-13
components/dfs/src/dfs_posix.c
components/dfs/src/dfs_posix.c
+1
-1
components/libc/newlib/libc.c
components/libc/newlib/libc.c
+0
-9
components/libc/newlib/sys/fcntl.h
components/libc/newlib/sys/fcntl.h
+0
-16
components/libc/newlib/syscalls.c
components/libc/newlib/syscalls.c
+29
-5
未找到文件。
components/dfs/include/dfs_def.h
浏览文件 @
0522343b
...
...
@@ -23,7 +23,7 @@
* 2004-10-14 Beranard Clean up the code.
* 2005-01-22 Beranard Clean up the code, port to MinGW
*/
#ifndef __DFS_DEF_H__
#define __DFS_DEF_H__
...
...
@@ -70,7 +70,7 @@
#define dfs_log(level, x)
#endif
#if defined(RT_USING_NEWLIB)
#if defined(RT_USING_NEWLIB)
#include <string.h>
#include <sys/stat.h>
/* used for struct stat */
#include <sys/statfs.h>
/* used for struct statfs */
...
...
@@ -108,6 +108,10 @@
#define DFS_O_EXCL O_EXCL
#define DFS_O_TRUNC O_TRUNC
#define DFS_O_APPEND O_APPEND
#ifndef O_DIRECTORY
#define O_DIRECTORY 0x0200000
#endif
#define DFS_O_DIRECTORY O_DIRECTORY
/* Seek flags */
...
...
components/dfs/include/dfs_posix.h
浏览文件 @
0522343b
...
...
@@ -20,10 +20,10 @@
* Change Logs:
* Date Author Notes
* 2009-05-27 Yi.qiu The first version.
* 2010-07-18 Bernard add stat and statfs structure definitions.
* 2010-07-18 Bernard add stat and statfs structure definitions.
* 2011-05-16 Yi.qiu Change parameter name of rename, "new" is C++ key word.
*/
#ifndef __DFS_POSIX_H__
#define __DFS_POSIX_H__
...
...
@@ -49,15 +49,15 @@ extern "C" {
#if !defined(_WIN32)
#define S_IFMT DFS_S_IFMT
#define S_IFSOCK DFS_S_IFSOCK
#define S_IFLNK DFS_S_IFLNK
#define S_IFREG DFS_S_IFREG
#define S_IFBLK DFS_S_IFBLK
#define S_IFDIR DFS_S_IFDIR
#define S_IFCHR DFS_S_IFCHR
#define S_IFIFO DFS_S_IFIFO
#define S_ISUID DFS_S_ISUID
#define S_ISGID DFS_S_ISGID
#define S_ISVTX DFS_S_ISVTX
#define S_IFLNK DFS_S_IFLNK
#define S_IFREG DFS_S_IFREG
#define S_IFBLK DFS_S_IFBLK
#define S_IFDIR DFS_S_IFDIR
#define S_IFCHR DFS_S_IFCHR
#define S_IFIFO DFS_S_IFIFO
#define S_ISUID DFS_S_ISUID
#define S_ISGID DFS_S_ISGID
#define S_ISVTX DFS_S_ISVTX
#define S_ISLNK(m) (((m) & DFS_S_IFMT) == DFS_S_IFLNK)
#define S_ISREG(m) (((m) & DFS_S_IFMT) == DFS_S_IFREG)
...
...
@@ -94,7 +94,7 @@ extern "C" {
#define SEEK_END DFS_SEEK_END
#endif
typedef
struct
typedef
struct
{
int
fd
;
/* directory file */
char
buf
[
512
];
...
...
@@ -119,7 +119,7 @@ int closedir(DIR* d);
struct
stat
;
/* file api*/
int
open
(
const
char
*
file
,
int
flags
,
int
mode
);
int
open
(
const
char
*
file
,
int
flags
,
...
);
int
close
(
int
d
);
#ifdef RT_USING_NEWLIB
_READ_WRITE_RETURN_TYPE
_EXFUN
(
read
,
(
int
__fd
,
void
*
__buf
,
size_t
__nbyte
));
...
...
components/dfs/src/dfs_posix.c
浏览文件 @
0522343b
...
...
@@ -41,7 +41,7 @@
*
* @return the non-negative integer on successful open, others for failed.
*/
int
open
(
const
char
*
file
,
int
flags
,
int
mode
)
int
open
(
const
char
*
file
,
int
flags
,
...
)
{
int
fd
,
result
;
struct
dfs_fd
*
d
;
...
...
components/libc/newlib/libc.c
浏览文件 @
0522343b
...
...
@@ -21,7 +21,6 @@
int
libc_system_init
(
void
)
{
#ifdef RT_USING_DFS
int
fd
;
struct
rt_device
*
console_dev
;
#ifndef RT_USING_DFS_DEVFS
...
...
@@ -33,14 +32,6 @@ int libc_system_init(void)
{
/* initialize console device */
rt_console_init
(
console_dev
->
parent
.
name
);
/* open console as stdin/stdout/stderr */
fd
=
open
(
"/dev/console"
,
O_RDONLY
,
0
);
/* for stdin */
fd
=
open
(
"/dev/console"
,
O_WRONLY
,
0
);
/* for stdout */
fd
=
open
(
"/dev/console"
,
O_WRONLY
,
0
);
/* for stderr */
/* skip warning */
fd
=
fd
;
}
#endif
...
...
components/libc/newlib/sys/fcntl.h
已删除
100644 → 0
浏览文件 @
1a158e7e
#ifndef __RTT_FCNTL_H__
#define __RTT_FCNTL_H__
/* Operation flags */
#define O_RDONLY 0x0000000
#define O_WRONLY 0x0000001
#define O_RDWR 0x0000002
#define O_ACCMODE 0x0000003
#define O_CREAT 0x0000100
#define O_EXCL 0x0000200
#define O_TRUNC 0x0001000
#define O_APPEND 0x0002000
#define O_DIRECTORY 0x0200000
#define O_BINARY 0x0008000
#endif
components/libc/newlib/syscalls.c
浏览文件 @
0522343b
...
...
@@ -3,6 +3,8 @@
#include <sys/time.h>
#include <rtthread.h>
#include <stdio.h>
#ifdef RT_USING_DFS
#include <dfs_posix.h>
#endif
...
...
@@ -12,6 +14,8 @@
#endif
/* Reentrant versions of system calls. */
static
int
__console_fd
=
-
1
;
int
dump
=
0
;
int
_close_r
(
struct
_reent
*
ptr
,
int
fd
)
...
...
@@ -205,18 +209,14 @@ _wait_r(struct _reent *ptr, int *status)
_ssize_t
_write_r
(
struct
_reent
*
ptr
,
int
fd
,
const
void
*
buf
,
size_t
nbytes
)
{
if
(
fd
<
3
)
if
(
fd
==
__console_fd
)
{
#ifdef RT_USING_CONSOLE
rt_device_t
console_device
;
extern
rt_device_t
rt_console_get_device
(
void
);
console_device
=
rt_console_get_device
();
if
(
console_device
!=
0
)
rt_device_write
(
console_device
,
0
,
buf
,
nbytes
);
return
nbytes
;
#else
return
0
;
#endif
}
else
{
...
...
@@ -462,3 +462,27 @@ void abort(void)
while
(
1
);
}
int
libc_console_init
(
void
)
{
#ifdef RT_USING_DFS
/* open console as stdin/stdout/stderr */
__console_fd
=
open
(
"/dev/console"
,
O_RDWR
,
0
);
/* for stdin/stdout/stderr */
if
(
__console_fd
>=
0
)
{
_GLOBAL_REENT
->
_stdin
=
fdopen
(
__console_fd
,
"r"
);
_GLOBAL_REENT
->
_stdout
=
fdopen
(
__console_fd
,
"w"
);
setvbuf
(
_GLOBAL_REENT
->
_stdout
,
NULL
,
_IONBF
,
0
);
_GLOBAL_REENT
->
_stderr
=
fdopen
(
__console_fd
,
"w"
);
setvbuf
(
_GLOBAL_REENT
->
_stderr
,
NULL
,
_IONBF
,
0
);
_GLOBAL_REENT
->
__sdidinit
=
1
;
}
#endif
return
0
;
}
INIT_APP_EXPORT
(
libc_console_init
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录