A. linux下C语言的printf原理是什么
Linux下C语言的printf是C标准I/O库中的格式化输出函数之一,将格式化数据写到标准输出stdout。
1 printf首先把格式化数据写到标准I/O的缓存,可以用setbuf和setvbuf设置缓存选项;
2 调用write系统调用,把标准I/O的缓存数据写到文件描述符STDOUT_FILENO,则标准I/O缓存中的数据就被送到内核缓存;
3 内核把缓存中的数据输出到标准输出stdout对应的文件描述符STDOUT_FILENO。
这是我的理解,基本应该就是这个流程,内核层次上的细节我就不清楚了。
另外:
1 printf返回写入的字节数;
2 printf处理可变参数表使用的是va_list,当然也有相应的vprintf,它的第三个参数就是一个va_list
B. linux 下C语言调用和输出问题
输入文件建立好,用文件的读写函数,来读取文件流,输出的文件不用事先建立好,用文件写函数的时候,可以带w+参数表示如果不存在该文件的话就创建该文件。
至于文件读写的函数,你可以网络一下,资料多得很,就不赘述了
C. 在Linux系统中,命令行shell数据流的定义
shell环境配置 用户在登录Linux系统后,就会启动bash进行作业。而在bash启动后,会读取与之相关的一些环境配置文件,从而搭建出bash自己的操作环境。还记得我...linux运行及定义在哪个文件,Linux系统应用 第二章 Shel...Linux中的Shell又被称为命令行,在这个命令行窗口中,用户输入指令,操作系统执行指令并将结果回显在屏幕上。 在Linux系统中,如果安装有图形界面,用户可以在图形界面中通过打开终端窗口...日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员。目前很多单位在招聘linux系统管理员时,shell脚本的编写...Linux常用命令 3.1 Linux命令概述 3.2 文件目录类命令 3.3 系统信息类命令 3.4 进程管理类命 3.5 其他常用Linux命令 Linux系统的终端窗口 Linux命令基础 ? 在Linux系统中.
D. linux下用java FileOutputStream输出文件问题
检查监控的周期,,,,,,,要确认逻辑是否正确、是否如自己想象的那样的。
E. linux中“tar -cvf - /home | tar -xvf - -C /tmp/homeback”是什么意思
1、表示标准输出流。减号”-“就是代表标准输出/标准输入
2、通过ssh传送文本
cat id_rsa.pub |ssh [email protected] 'cat - >> ~/.ssh/authorized_keys'
3、实现复制的例子tar cf - access.log |tar xf - -C /opt
4、脚本中可以这样在crontab里添加一个任务
{ crontab -l; echo "* * * * * /bin/date >> /tmp/log" ; } | crontab -
5、在文件头添加一行,也可以这样玩
cat - a.txt <<<"line num 1" > b.txt
6、只取一列并与另一文件做diff
awk '{ print $1 }' a | diff - b
7、例子, 打包1个文件夹 /var/log/ ,并用zip压缩,
可以分步执行
#tar -cvf log.tar /var/log/
#zip -r log.tar.zip log.tar
#rm -rf log.tar
写成一条语句就是
tar -cvf log.tar /var/log/ && zip -r log.tar.zip log.tar && rm -rf log.tar
发现第一条语句的输出(log.tar) 就是第二条语句的输入
这种情况下我们可以用 “-” 来取代这个输出输入
直接执行如下语句就ok了
tar -cvf - /var/log | zip -r log.zip -
意思就是 第一条语句不再输入到1个具体文件,而输出到stdout中, 而作为第二条件的标准输入(stdin), 而stdin 和 stdout都可以用“-”来取代。
这样的话就不会有中间文件生成了~
F. Linux怎么使用流
Unix/Linux/BSD 都有三个特别文件,分别
1)标准输入 即 STDIN , 在 /dev/stdin ,
一般指键盘输入, shell里代号是 0
2) 标准输出 STDOUT, 在 /dev/stdout,
一般指终端(terminal), 就是显示器, shell里代号是 1
3) 标准错误 STDERR, 在 /dev/stderr
也是指终端(terminal), 不同的是, 错误信息送到这里
shell里代号是 2
2, 3用些例子再表达一下
User@User-PC ~
$ ls /dev/stdin
/dev/stdin@
User@User-PC ~
$ ls -l /dev/std*
G. linux标准输入输出流式对于内存来说的吗
Unix/linux/BSD 都有三个特别文件,分别 1)标准输入 即 STDIN , 在 /dev/stdin , 一般指键盘输入, shell里代号是 0 2) 标准输出 STDOUT, 在 /dev/stdout, 一般指终端(terminal), 就是显示器, shell里代号是 1 3) 标准错误 STDERR, 在 /dev/stderr 也是指终端(terminal), 不同的是, 错误信息送到这里 shell里代号是 2 摘自:YEYUANGEN的专栏
H. 如何关闭linux系统中的覆盖输出重定向功能
Linux下默认有两种输出流:
1 - 标准输出流
2 - 标准错误输出流
Linux下一切皆文件,这里的1和2表示的就是输出设备文件的文件描述符。
默认情况下,无论是标准输出还是标准错误输出,都是输出到终端显示的。
但也可以通过重定向输出到其他地方,如文件。这就是输出重定向。
并且,这两种输出流可以被分别重定向。
下面举例:
假设文件file.txt在当前目录下并不存在,执行下面的命令:
ls file.txt 2>log.txt
这样就将错误输出重定向到文件log.txt中。
ls file.txt 2>/dev/null
这样就什么都看不到,将标准错误输出流重定向到/dev/null中,丢弃了。
ls file.txt >/dev/null
只将标准输出重定向到/dev/null中,这样仍然可以在终端窗口看到错误输出。
注:>/dev/null 等同于 1>/dev/null,前面的1可省略。