3.3 将标准输入复制到标准输出

mycat/mycat.c

#include "apue.h"
#define	BUFFSIZE	4096
int
main(void)
{
	int		n;
	char	buf[BUFFSIZE];
	while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0)
		if (write(STDOUT_FILENO, buf, n) != n)
			err_sys("write error");
	if (n < 0)
		err_sys("read error");
	exit(0);
}

3.3 将标准输入复制到标准输出

时间: 2024-11-09 11:18:19

3.3 将标准输入复制到标准输出的相关文章

将标准输入复制到标准输出

mycat/mycat.c 1 #include "apue.h" 2 #define BUFFSIZE 4096 3 int 4 main(void) 5 { 6 int n; 7 char buf[BUFFSIZE]; 8 while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0) 9 if (write(STDOUT_FILENO, buf, n) != n) 10 err_sys("write error")

程序1.2将标准输入复制到标准输出

这是我的第一篇关于UNIX环境高级编程的日志,使用g++编译libapue.a 1 #include "apue.h" 2 3 #define BUFFSIZE 4096 4 5 int main() 6 { 7 int n; 8 char buf[BUFFSIZE]; 9 10 while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0) 11 { 12 if (write(STDOUT_FILENO, buf, n) != n) 13

不带缓冲的IO的标准输入到标准输出

在POSIX标准中提供了函数open, read, write, lseek以及close提供不带缓冲的IO,这些函数都是使用文件描述符: 在Linux/Unix系统中将标准输入复制到标准输出简单实现如下: #include <unistd.h> #define BUFFSIZE 4096 int main(int argc, char **argv) { int n; char buf[BUFFSIZE]; while((n = read(STDIN_FILENO, buf, BUFFSIZ

笔记3-2: read函数

read 函数: 调用read函数可以从打开的文件中读取数据. 原型: #include <unistd.h> ssize_t  read(int filedes, void* buf, size_t nbytes); 返回值:若成功则返回读取到的字节数,文件的偏移量将增加至实际读取的字节数,若到了文件末尾返回0,出错返回-1. 很多情况下,实际读取字节数少于要求的字节数,如下: 1.普通文件,在读取要求的字节数之前,已经到达文件尾端. 2.终端,通常一次最多读取一行.(有办法改变这一行为)

Linux网络配置及SSH和Shell基础

Linux网络配置及SSH和Shell基础 一.Linux网络配置     ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了. 二.hosts文件的作用及修改主机名      Hosts : The static table lookup for host name(主机名查询静态表)       Linux 的/etc/hosts是

关于文件流的简单操作

2015.1.28星期三 小雪变量可以理解为内存gcc -Wall 打开所有警告 指针数组:注意指针数组是以一个NULL指针结束的: c和指针 P105 给定一个指向以NULL结尾的指针列表的指针strings,在列表中的字符串查找一个特定的字符#include <stdio.h>#define TRUE 1#define FALSE 0 int find_char(char **strings,char value){ char *string; while((string = *strin

linux shell 管道命令(pipe)使用及与shell重定向区别

linux shell 管道命令(pipe)使用及与shell重定向区别 看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:"|",它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 st

shell管道和重定向

看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 standard input. 一.管道命令使用说明: command1正确输出,作为c

unix环境高级编程笔记(2)-- 文件I/O之不带缓冲的I/O

1 引言 不带缓冲区的I/O(unbuffered I/o)是指每个read 和 write 都调用内核中的一个系统调用,这些不带缓冲区的I/O 不是ISO C 的组成部分. 2 文件描述符 每个打开的文件都通过文件描述符引用,文件描述符是一个非负整数.open 和 create 函数返回的文件描述符供 read write 和 close 使用. unix中文件描述符0与标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错输出相关联. 3 不带缓冲区的I/O函数 下面介绍6个常