首页 > 编程知识 正文

在scanf函数中的格式控制字符串,查看句柄数命令

时间:2023-05-06 21:15:39 阅读:119426 作者:3049

本文不是阐述文件描述符与文件句柄的异同,而是标准的

这是什么标准?

fork创建一个进程,该进程默认情况下规定存在三个文件描述符

描述符编号

个人资料

作用

0

标准输入

用于获取输入的通用文件描述符

1

标准输出

通用输出一般信息的文件描述符

2

标准错误

通用输出错误消息的文件描述符

标准输入更容易理解。 在函数scanf中,是从标准输入中获取的数据。 我们执行命令。 只要该命令在前台运行,标准输入就是我们终端上的输入。

标准输出和标准错误用途有区别。 从命名中可以看出,标准错误用于输出错误消息,而标准输出只是输出提示消息。 根据文件描述符,区分常规提示信息和错误提示信息对过滤日志很有用。

默认情况下,标准输出和标准错误指向同一文件,在终端前端运行时,无论是标准输出还是标准错误都将输出到终端。

c语言在标准中的应用

c有六个与该标准相关的宏。

标准

stdio.h

unistd.h

标准输入

stdin

STDIN_FILENO

标准输出

stdout

STDOUT_FILENO

标准错误

stderr

STDERR_FILENO

stdin和STDIN_FILENO都指向标准输入,前者是FILE类型,是我们说的文件句柄,后者是int类型,是我们说的文件描述符。 标准输出和标准错误也一样。

所以,在不同的c接口上,需要使用不同的宏。

frintf(stdout、' stdoutn ' );

write(stdout_fileno,' STDOUT_FILENOn ',14 );

如上所述,默认情况下存在标准输入、标准输出和标准错误。 也就是说,不需要open或fopen,可以直接使用。 例如

#包含

(intmain(intargc,char **argv ) ) ) ) ) ) ) )。

{

frintf(stderr,' something errorn ';

}

壳在标准中的运用

shell命令中常用的重定向实际上是标准操作

标准

运用

样品

标准输入

cat helloworld.c

标准输出

或1

echo 'helloworld' stdout.log

标准错误

2

组错误2/dev/null

壳牌合作

#包含

#包含

#包含

#包含

(intmain(intargc,char **argv ) ) ) ) ) ) ) )。

{

char input[100];

文件*文件;

frintf(stdout、' stdoutn ' );

frintf(stderr、' stderrn ' );

write(stdout_fileno,' STDOUT_FILENOn ',strlen ) );

write(stderr_fileno,' STDERR_FILENOn ',strlen ) ) STDERR_FILENOn ';

}

直接在bash shell上运行,默认情况下,标准输出和标准错误都将输出到终端

[GMPY@14:43 tmp]$./stdio

stdout

stderr

STDOUT_FILENO

STDERR_FILENO

用shell重定向的方法区分标准输出和标准错误日志

[ gmpy @ 14:43 tmp ] $./stdio2stderr.log1stdout.log

[ gmpy @ 14:47 tmp ] $ cat stderr.log

stderr

STDERR_FILENO

[ gmpy @ 14:47 tmp ] $ cat stdout.log

STDOUT_FILENO

stdout

[GMPY@14:47 tmp]$

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。