文件描述符   当应用程序请求打开或者操作文件时,操作系统为应用程序设置一张文件列表,具体的实现形式此处不深入说明 操作系统会提供给你一个非负整数,作为一个索引号,它的作用就像地址或者说指针或者说偏移量 这个索引号就用来定位文件数据在内存中的位置. 这个概念在类Unix系统叫做文件描述符, linux把所有东西都被看成是文件,比如文件.目录.进程.网络socket.各种硬件设备等 这个概念在Windows下 称之为句柄, 句柄是Windows下各种对象的标识符, 比如文件.资源.菜单.光标.位图…
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeREPL插件. Ctrl+shift+p 键入 install packages,再继续键入 SublimeREPL 安装即可然后每次编译运行的操作是:tools->sublimeREPL->python->python-Run current file.点击之后会出现新的页面*REPL*[py…
Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示.0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中. 同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现. Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失…
SYNOPSIS 总览 #include <stdio.h> void flockfile(FILE *filehandle); int ftrylockfile(FILE *filehandle); void funlockfile(FILE *filehandle); DESCRIPTION 描述 标准输入输出库 stdio 函数是线程安全的.这是通过为每个文件对象 FILE 赋予一个锁定计数和 (当锁定计数非零时) 一个所有者线程来实现的.对每个库函数调用,这些函数等待直到文件对象 FI…
using NPOI.HSSF.UserModel; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; namespace NPOI.Sample1 { /// <summary> /// 创建Excel文件 /// </summary> [TestClass] public class CreateExcelFile { /// <summary> /// 使用NPOI创建一个标准…
[转]https://blog.csdn.net/ZCShouCSDN/article/details/100048461 ELF 文件规范   ELF(Executable and Linking Format)是一个二进制文件规范.用于定义不同类型的对象文件(Object files)中都放了什么东西.以及都以什么样的格式去放这些东西.   现在流行的二进制可执行文件格式 (Executable File Format),主要是 Windows 下的 PE(Portable Executab…
再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >> 将命令输出添加到文件末尾而不删除文件中已有的信息. >& 将一个句柄的输出写入到另一个句柄的输入中. <& 从一个句柄读取输入并将其写入到另一个句柄输出中. | 从一个命令中读取输出并将其写入另一个命令的输入中.也称作管道. I/O重定向详解及应用实例 1. 基本概念(这是…
linux中的文件描述符(file descriptor)和文件 linux为了实现一切皆文件的设计哲学,不仅将数据抽象成了文件,也将一切操作和资源抽象成了文件,比如说硬件设备,socket,磁盘,进程,线程等. 这样的设计将系统的所有动作都统一起来,实现了对系统的原子化操作,大大降低了维护和操作的难度,想想看,对于socket,硬件设备,我们只要读读写写文件就能对其进行操作是多么爽的一件事. 文件描述符: 那么在操作这些所谓的文件的时候,我们不可能没操作一次就要找一次名字吧,这样会耗费大量的时…
Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出, 比如: 2> a.txt #表示将错误信息输出到文件a.txt中. 同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现. Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信…
网上实例 总结 /* _STD_BEGIN using _CSTD clearerr; using _CSTD fclose; using _CSTD feof; using _CSTD ferror; using _CSTD fflush; using _CSTD fgetc; using _CSTD fgetpos; using _CSTD fgets; using _CSTD fopen; using _CSTD fprintf; using _CSTD fputc; using _CST…
1 标准输入输出文件 在Python中,模块sys中含有标准的输入输出文件 sys.stdin     标准输入方法(一般是键盘) sys.stdout   标准输出方法(到显示器的缓冲输出) sys.stderr   标准错误输出方法( 标准出错流)(到屏幕的非缓冲输出) 备注:这里的“缓冲”和"非缓冲"指的是open()函数的第三个参数 当(每一个python)程序启动时,上述三个方法均默认启动 在程序启动时,这些对象的初值由sys.__stdin__.sys.__stdout__…
0x00 原理   文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符. 翻译成人话- 可以认为是指向文件的一个指针,如果有文件被打开,就生成一个指针指向打开文件的位置. 文件描述符一般在linux的 /dev/fd/目录下 0x01 代码审计 <?php $fp = fopen("flag.txt", "r"); echo $fp; if($_SERVER['REQUEST_METHOD…
lienhua342014-08-23 UNIX 提供了两个函数 dup 和 dup2 用于复制一个现存的文件描述符. #include <unistd.h> int dup(int filedes); int dup2(int filedes, int filedes2); 返回值:若成功则返回新的文件描述符,如出错则返回-1. 由 dup 函数返回的文件描述符一定是当前可用文件描述符中的最小描述符.用 dup2 函数则可以通过参数 filedes2 指定目标文件描述符.如果filedes2…
http://blog.csdn.net/ce123_zhouwei/article/details/8459730 Linux内核中的文件描述符(二)--socket和文件描述符 Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blog.csdn.NET/ce123) socket和文件系统紧密相关,我们可以通过文件系统的open.read.write和close等操作socket.下面是一个简单的例子. /…
原文:http://blog.sina.com.cn/s/blog_8333cf8f0100vzzl.html##1 1. 标准输入输出和错误    linux下使用标准输入文件stdin和标准输出文件stdout,来表示每个命令的输入和输出,还使用一个标准错误输出文件stderr用于输出错误信息.这三个标准输入输出系统缺省与控制终端设备相联系在一起. 因此,在标准情况下,每个命令通常从它的控制终端中获取输入,将输出打印到控制终端的屏幕上.但是也可以重新定义程序的标准输入文件stdin和标准输出…
本文转载于:http://www.360doc.com/content/11/0521/11/5455634_118306098.shtml 首先,先稍微了解系统调用的概念:       系统调用,英文名systemcall,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程…
shell简介 分为两种c shell 和b shell b shell:sh.ksh.Bash.psh.zsh: (Bash和sh兼容,linux基本shell是Bash) c shell:csh.tcsh: (语言风格类似C语言,所以得名c shell) 查看系统shell :cat /etc/shells echo echo -e "ab\bc" #输出ac echo -e "\e[1;31m abcd \e[0m" #输出红色的abcd,30m黑色,31m红…
SYNOPSIS 总览 #include <stdio.h> FILE *stdin; FILE *stdout; FILE *stderr; DESCRIPTION 描述 标注 I/O 库函数提供了一个简单而有效的,带缓冲的流输出输出接口.输入和输出被映射为逻辑的数据流,物理的 I/O 特性则被隐藏起来.库中包含的函数与宏列在下面:更多信息可以从独立的 man 手册页中得到. 将一个流关联到一个外部文件 (可能是一个物理设备) 的方法是打开 ( opening ) 这个文件,其中可能牵涉到创…
目录 1 三种标准输入输出 2 什么是重定向?如何重定向? (1)什么是重定向? (2)如何重定向? 3 管道符以及和它容易混淆的一些符号使用 (1)管道符 | (2)&和&&.|和|| 区别.分号(;)用法 4 nohup 后台启动进程命令和案例 5 小结 1 三种标准输入输出 标准输入(STDIN),文件描述符号为:0,默认从键盘获取输入: 标准输出(STDOUT),文件描述符号为:1,默认输出到显示终端: 标准错误输出(STDERR),文件描述符号为:2,默认输出到显示终端:…
A: 代码重复: 语句块1: while(判断) { 语句块2: 语句块1: } 上面可以改写为: while(1) { 语句块1: if(判断) break: 语句块2: } B: 标准IO和文件IO的区别: 标准IO:文件流fp,有缓存,库函数 文件IO:文件描述符fd(小的,非负的整型数),无缓存,系统调用 标准IO是依赖于文件IO的 b1: 标准IO: stdin   键盘 stdout   屏幕 stderr   屏幕 fgetc   每次读入一个字符          fputc  …
1. 标准输入输出 标准输入.输出主要由缓冲区和操作方法两部分组.缓冲区实际上可以看做内存中的字符串数组,而操作方法主要是指printf.scanf.puts.gets,getcha.putcahr等操作缓冲区的方法.在C++以及Java等面向对象的编程语言中,将缓冲区以及操作缓冲区的方法封装成一类对象,这类对象就称为流. 缓冲区最大的特点主要体现在数据的一次性,即数据被printf.scanf从缓冲区中取出后就被使用了,或者说消耗了.可以把缓冲区比喻成管道,缓冲区中的数据比喻成水流,print…
1 文件描述符 内核为每个进程维护一个已打开文件的记录表(实现为结构体数组),文件描述符是一个较小的正整数(0-1023)(结构体数组下标),它代表记录表的一项,通过文件描述符和一组基于文件描述符的文件操作函数,就可以实现对文件的读.写.创建.删除等操作. 常用基于文件描述符的函数有open(打开).creat(创建).close(关闭).read(读取).write(写入).ftruncate(改变文件大小).lseek(定位).fsync(同步).fstat(获取文件状态).fchmod(权…
command > filename 把标准输出重定向到一个文件,如果文件不存在则新建,如果存在则覆盖其内容.command >> filename 把标准输出重定向到一个文件中,如果文件不存在则新建,如果存在则追加到文件尾部.command 1 > fielname 把标准输出重定向到一个文件中command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中command 2 > filename 把标准错误重定向到一个文件中,…
一.终端I/O 1.单字符I/O:getchar(),putchar() (1)单字符输入(get character): [ int getchar();] 返回值为输入的字符(ASCII).可以接受任何字符,包括非打印字符.当一次键入多个字符时按下回车键后getchar开始逐个读取所有字符(包括回车符). 在某些编译环境下,因为scanf()函数不读取回车符且将其留在输入队列中,下次调用scanf()时会由于先读取到回车符而在读取数据前过早结束输入,所以常在scanf后用[getchar()…
一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linix或unix平台. 标准I/O:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性.标准I/O库处理很多细节.例如缓存分配,以优化长度执行I/O等.标准的I/O提…
本文转载自:http://blog.sina.com.cn/s/blog_63f31f3401013jrn.html 先来了解下什么是标准IO以及文件IO. 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性.标准IO库处理很多细节.例如缓存分配,以优化长度执行IO等.标准的IO提供了三种类型的缓存. (1)全缓存:当填满标准IO缓存后才进行实际的IO操作.         (2)行缓存:当输入或输出中遇到新行符时,标准…
2017-07-17 09:32:07 输入read: 用途: 从标准输入读取一行,或者从文件描述符FD(file descriptor)中读取一行,并且将其分割成字段. 用法: read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...] 常用选项: -a:(arrary) 将读取得的字符划分成单词,按照数组存储(从0开始) 源码:#!/bin/bash ec…
先来了解下什么是标准IO以及文件IO. 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性.标准IO库处理很多细节.例如缓存分配,以优化长度执行IO等.标准的IO提供了三种类型的缓存. (1)全缓存:当填满标准IO缓存后才进行实际的IO操作.         (2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO操作.         (3)不带缓存:stderr就是了. 文件IO:文件IO称之为不带缓存的IO(u…
这样的代码有什么问题? char c; while((c = getchar()) != EOF) ... 首先,保存getchar的返回值的变量必须是int型.EOF是getchar返回的“超出范围”的 特殊值,它跟getchar可能返回的其他任何字符值都不一样.(在时新的系统上,文件中已经不再保存真正的文件结束符了,EOF只不过是一个没有更多字符的信号而已.)getchar返 回的值必须保存在一个比char型大的变量中,这样才能保存所有的char值和EOF. 像前面的代码片段那样将getch…
一 相关知识 1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |). 2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `). 3) 默认地,标准的错误输出到终端,但是也可以重定向到文件. 4)标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示. 5)其实除了以上常用的3中文件描述符,还有3~9也可以作为文件描述符.3~9你可以认为是执行某个地方的文件描述符,常被用来作…