Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos A
提交
fb5df47b
K
Kernel Liteos A
项目概览
OpenHarmony
/
Kernel Liteos A
1 年多 前同步成功
通知
460
Star
414
Fork
55
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel Liteos A
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fb5df47b
编写于
8月 13, 2021
作者:
O
openharmony_ci
提交者:
Gitee
8月 13, 2021
浏览文件
操作
浏览文件
下载
差异文件
!541 feat: 自研shell命令回补
Merge pull request !541 from Kiita/shell_cmd_0812
上级
339e937a
7bc68f45
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
2 deletion
+35
-2
apps/shell/src/main.c
apps/shell/src/main.c
+35
-2
未找到文件。
apps/shell/src/main.c
浏览文件 @
fb5df47b
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
#include "semaphore.h"
#include "semaphore.h"
#include "securec.h"
#include "securec.h"
#include "unistd.h"
#include "unistd.h"
#include <sys/syscall.h>
ShellCB
*
g_shellCB
=
NULL
;
ShellCB
*
g_shellCB
=
NULL
;
...
@@ -88,11 +88,44 @@ OUT:
...
@@ -88,11 +88,44 @@ OUT:
return
ret
;
return
ret
;
}
}
int
main
()
static
int
DoShellExec
(
char
**
argv
)
{
int
i
,
j
;
int
len
=
0
;
int
ret
=
SH_NOK
;
char
*
cmdLine
=
NULL
;
for
(
i
=
0
;
argv
[
i
];
i
++
)
{
len
+=
strlen
(
argv
[
i
]);
}
len
+=
i
+
1
;
cmdLine
=
(
char
*
)
malloc
(
len
);
if
(
!
cmdLine
)
{
return
ret
;
}
memset_s
(
cmdLine
,
len
,
0
,
len
);
for
(
j
=
0
;
j
<
i
;
j
++
)
{
strcat_s
(
cmdLine
,
len
,
argv
[
j
]);
strcat_s
(
cmdLine
,
len
,
" "
);
}
cmdLine
[
len
-
2
]
=
'\0'
;
ret
=
syscall
(
__NR_shellexec
,
argv
[
0
],
cmdLine
);
free
(
cmdLine
);
return
ret
;
}
int
main
(
int
argc
,
char
**
argv
)
{
{
int
ret
=
SH_NOK
;
int
ret
=
SH_NOK
;
ShellCB
*
shellCB
=
NULL
;
ShellCB
*
shellCB
=
NULL
;
if
(
!
strcmp
(
argv
[
0
],
"shell"
)
&&
argv
[
1
])
{
ret
=
DoShellExec
(
argv
+
1
);
return
ret
;
}
setbuf
(
stdout
,
NULL
);
setbuf
(
stdout
,
NULL
);
shellCB
=
(
ShellCB
*
)
malloc
(
sizeof
(
ShellCB
));
shellCB
=
(
ShellCB
*
)
malloc
(
sizeof
(
ShellCB
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录