Pav*_*ath 4 unix linux bash shell
我看到-
操作员使用不同的命令以不同的方式运行.
例如,
cd -
Run Code Online (Sandbox Code Playgroud)
cds到上一个目录,而,
vim -
Run Code Online (Sandbox Code Playgroud)
读取 stdin
所以我想知道为什么-
运营商在这里以两种不同的方式行事.有人能指出我对-
运营商的一些详细文件吗?
Ben*_*oit 11
它不是运营商,而是一个论点.当你用C或C++编写一个程序argv[1]
时(它是第一个参数),你可以随心所欲地做任何事情.
按照惯例,许多程序使用-
stdin作为占位符,通常需要输入文件名,stdout需要输出文件名.但是cd
不需要读取文件流,为什么需要stdin或stdout?
额外:下面是vim的摘录main.c
,解析开头的参数-
:如果没有其他字符,它会激活STDIN输入.
else if (argv[0][0] == '-' && !had_minmin)
{
want_argument = FALSE;
c = argv[0][argv_idx++];
#ifdef VMS
...
#endif
switch (c)
{
case NUL: /* "vim -" read from stdin */
/* "ex -" silent mode */
if (exmode_active)
silent_mode = TRUE;
else
{
if (parmp->edit_type != EDIT_NONE)
mainerr(ME_TOO_MANY_ARGS, (char_u *)argv[0]);
parmp->edit_type = EDIT_STDIN;
read_cmd_fd = 2; /* read from stderr instead of stdin */
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
287 次 |
最近记录: |