精华内容
下载资源
问答
  •  close on exec, not on-fork, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。  通过fcntl设置...
    通过fcntl设置FD_CLOEXEC标志有什么用?  
    1.  close on exec, not on-fork, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。  
    通过fcntl设置FD_CLOEXEC标志有什么用?
     close on exec, not on-fork, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。


     

    我们经常会碰到需要fork子进程的情况,而且子进程很可能会继续exec新的程序。这就不得不提到子进程中无用文件描述符的问题!


    fork函数的使用本不是这里讨论的话题,但必须提一下的是:子进程以写时复制(COW,Copy-On-Write)方式获得父进程的数据空间、堆和栈副本,这其中也包括文件描述符。刚刚fork成功时,父子进程中相同的文件描述符指向系统文件表中的同一项(这也意味着他们共享同一文件偏移量)。


    接着,一般我们会调用exec执行另一个程序,此时会用全新的程序替换子进程的正文,数据,堆和栈等。默认子进程的文件描述符复制到exec后的进程中,这样的话,如果父进程关闭(killall *)之后,也无法调用驱动程序中的release函数来释放文件struct file 结构,当子进程结束(killall *)时,才会调用realse函数释放open打开的文件。所以通常我们会fork子进程后在子进程中直接执行close关掉对子进程无用的文件描述符,然后再执行exec。


    但是在复杂系统中,有时我们fork子进程时已经不知道打开了多少个文件描述符(包括socket句柄等),这此时进行逐一清理确实有很大难度。我们期望的是能在fork子进程前打开某个文件句柄时就指定好:“这个句柄我在fork子进程后执行exec时就关闭”。其实时有这样的方法的:即所谓的 close-on-exec。


    close-on-exec的实现只需要调用系统的fcntl就能实现,很简单几句代码就能实现:

         int fd=open("foo.txt",O_RDONLY);
         int flags = fcntl(fd, F_GETFD);
         flags |= FD_CLOEXEC;
         fcntl(fd, F_SETFD, flags);
    
    

    这样,当fork子进程后,仍然可以使用fd。但执行exec后系统就会字段关闭子进程中的fd了,如果不设置该close_on_exec标志位,子进程的fd将复制到exec之后的进程中。

    展开全文
  • 如何构造栈段描述

    千次阅读 2016-03-23 22:09:09
    如何构造栈段描述符本文要讨论的是:对于x86保护模式(32位),已知栈空间的起始地址和结束地址,如何定义栈段描述符?ESP的初始为多少?为了简化问题,设定约束条件如下: 1. 栈段向下扩展 2. B=1 3. G=1 4. ...

    如何构造栈段描述符

    本文要讨论的是:对于x86保护模式(32位),已知栈空间的起始地址和结束地址,如何定义栈段描述符?ESP的初始为多少?

    为了简化问题,设定约束条件如下:
    1. 栈段向下扩展
    2. B=1
    3. G=1
    4. 分页机制关闭

    问题分析:数据段描述符的格式如下
    这里写图片描述
    如果你不懂各个字段的含义,可以参考我的博文:
    数据段描述符和代码段描述符(一)——《x86汇编语言:从实模式到保护模式》读书笔记10

    根据约束条件,G=1,B=1,AVL可以设为0,P=1,DPL根据需要来设置,TYPE=0x06(可读可写,向下扩展);所以问题简化为求基地址和段限长,只要算出这两个字段,就可以顺利构造出栈段描述符。

    假设我们已经有一片连续的物理内存,要把这段内存作为栈空间。设最低端的物理地址为LA,最高端的物理地址为HA,且栈空间大小为SIZE;如下图所示:

    设有效界限(Effect Limit)为EL;有效偏移(Valid Offset)为VO;
    根据《Intel Architecture Software Developer’s Manual Volume 3:System Programming》第4.3节的说明(请注意黄色的字):

    于是,可以知道VO的范围:

    因为基地址加上偏移值才是实际的物理地址,假设描述符中的基地址为BA,那么可以得出:

    (3)式减去(2)式得到:

    又根据栈空间的大小为SIZE,可得出:

    把(5)代入(4)式,消去HA-LA,得到:

    也就是说,知道了栈空间的大小SIZE,就能算出EL

    把(5)式代入(3)式,消去HA得到:


    因为是32位的处理器,所以

    把(8)式代入(7)式得:

    也就是说,段描述符中的基地址BA等于栈空间的最低端地址LA加上栈空间的大小。

    通过上面的推导,我们得出2个重要的公式

    但是,栈段描述符中填写的界限值(这里用limit表示),并非是(6)式中的EL;当G=1(粒度为4KB)时,limitEL的关系为:

    当栈空间的大小是4KB的整数倍时,我们可以设

    把(10)和(11)式代入(6)式,消去ELSIZE,得

    于是,我们知道描述符中的界限值该如何计算。

    到这里,本文还没有结束,我们还要推导ESP的初始值(用ESP_INIT表示)。
    第一次压栈的时候,比如

        push eax

    首先,ESP的值减去4,然后把EAX的值写入偏移为[0xFFFF_FFFC,0xFFFF_FFFF]这四个单元。所以:

    最后,重复我们的结论:

    【end】

    展开全文
  • postgis空间函数说明

    万次阅读 2019-06-28 11:30:54
    结果和ST_Union相同 ST_MemUnion(geometry set) 几何对象存取函数: 获取几何对象的WKT描述 ST_AsText(geometry) 获取几何对象的WKB描述 ST_AsBinary(geometry) 获取几何对象的空间参考ID ST_SRID(geometry) 获取...

    微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

    PostGIS的具体函数详细了解以及用法例子可以到官网查看: http://postgis.net/docs/reference.html

    1.OGC标准函数

    管理函数: 

    添加几何字段 AddGeometryColumn(, , , , , ) 
    删除几何字段 DropGeometryColumn(, , ) 
    检查数据库几何字段并在geometry_columns中归档 Probe_Geometry_Columns() 
    给几何对象设置空间参考(在通过一个范围做空间查询时常用) ST_SetSRID(geometry, integer)

    几何对象关系函数 :

    获取两个几何对象间的距离 ST_Distance(geometry, geometry) 
    如果两个几何对象间距离在给定值范围内,则返回TRUE ST_DWithin(geometry, geometry, float) 

    判断两个几何对象是否相等 
    (比如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的几何对象) ST_Equals(geometry, geometry) 
    判断两个几何对象是否分离 ST_Disjoint(geometry, geometry) 
    判断两个几何对象是否相交 ST_Intersects(geometry, geometry) 
    判断两个几何对象的边缘是否接触 ST_Touches(geometry, geometry) 
    判断两个几何对象是否互相穿过 ST_Crosses(geometry, geometry) 
    判断A是否被B包含 ST_Within(geometry A, geometry B) 
    判断两个几何对象是否是重叠 ST_Overlaps(geometry, geometry) 
    判断A是否包含B ST_Contains(geometry A, geometry B) 
    判断A是否覆盖 B ST_Covers(geometry A, geometry B) 
    判断A是否被B所覆盖 ST_CoveredBy(geometry A, geometry B) 
    通过DE-9IM 矩阵判断两个几何对象的关系是否成立 ST_Relate(geometry, geometry, intersectionPatternMatrix) 
    获得两个几何对象的关系(DE-9IM矩阵) ST_Relate(geometry, geometry)

    几何对象处理函数: 

    获取几何对象的中心 ST_Centroid(geometry) 
    面积量测 ST_Area(geometry) 
    长度量测 ST_Length(geometry) 
    返回曲面上的一个点 ST_PointOnSurface(geometry) 
    获取边界 ST_Boundary(geometry) 
    获取缓冲后的几何对象 ST_Buffer(geometry, double, [integer]) 
    获取多几何对象的外接对象 ST_ConvexHull(geometry) 
    获取两个几何对象相交的部分 ST_Intersection(geometry, geometry) 
    将经度小于0的值加360使所有经度值在0-360间 ST_Shift_Longitude(geometry) 
    获取两个几何对象不相交的部分(A、B可互换) ST_SymDifference(geometry A, geometry B) 
    从A去除和B相交的部分后返回 ST_Difference(geometry A, geometry B) 
    返回两个几何对象的合并结果 ST_Union(geometry, geometry) 
    返回一系列几何对象的合并结果 ST_Union(geometry set) 
    用较少的内存和较长的时间完成合并操作,结果和ST_Union相同 ST_MemUnion(geometry set)

    几何对象存取函数:

    获取几何对象的WKT描述 ST_AsText(geometry) 
    获取几何对象的WKB描述 ST_AsBinary(geometry) 
    获取几何对象的空间参考ID ST_SRID(geometry) 
    获取几何对象的维数 ST_Dimension(geometry) 
    获取几何对象的边界范围 ST_Envelope(geometry) 
    判断几何对象是否为空 ST_IsEmpty(geometry) 
    判断几何对象是否不包含特殊点(比如自相交) ST_IsSimple(geometry) 
    判断几何对象是否闭合 ST_IsClosed(geometry) 
    判断曲线是否闭合并且不包含特殊点 ST_IsRing(geometry) 
    获取多几何对象中的对象个数 ST_NumGeometries(geometry) 
    获取多几何对象中第N个对象 ST_GeometryN(geometry,int) 
    获取几何对象中的点个数 ST_NumPoints(geometry) 
    获取几何对象的第N个点 ST_PointN(geometry,integer) 
    获取多边形的外边缘 ST_ExteriorRing(geometry) 
    获取多边形内边界个数 ST_NumInteriorRings(geometry) 
    同上 ST_NumInteriorRing(geometry) 
    获取多边形的第N个内边界 ST_InteriorRingN(geometry,integer) 
    获取线的终点 ST_EndPoint(geometry) 
    获取线的起始点 ST_StartPoint(geometry) 
    获取几何对象的类型 GeometryType(geometry) 
    类似上,但是不检查M值,即POINTM对象会被判断为point ST_GeometryType(geometry) 
    获取点的X坐标 ST_X(geometry) 
    获取点的Y坐标 ST_Y(geometry) 
    获取点的Z坐标 ST_Z(geometry) 
    获取点的M值 ST_M(geometry)

    几何对象构造函数 : 

    参考语义: 
    Text:WKT 
    WKB:WKB 
    Geom:Geometry 
    M:Multi 
    Bd:BuildArea 
    Coll:Collection ST_GeomFromText(text,[])

    ST_PointFromText(text,[]) 
    ST_LineFromText(text,[]) 
    ST_LinestringFromText(text,[]) 
    ST_PolyFromText(text,[]) 
    ST_PolygonFromText(text,[]) 
    ST_MPointFromText(text,[]) 
    ST_MLineFromText(text,[]) 
    ST_MPolyFromText(text,[]) 
    ST_GeomCollFromText(text,[]) 
    ST_GeomFromWKB(bytea,[]) 
    ST_GeometryFromWKB(bytea,[]) 
    ST_PointFromWKB(bytea,[]) 
    ST_LineFromWKB(bytea,[]) 
    ST_LinestringFromWKB(bytea,[]) 
    ST_PolyFromWKB(bytea,[]) 
    ST_PolygonFromWKB(bytea,[]) 
    ST_MPointFromWKB(bytea,[]) 
    ST_MLineFromWKB(bytea,[]) 
    ST_MPolyFromWKB(bytea,[]) 
    ST_GeomCollFromWKB(bytea,[]) 
    ST_BdPolyFromText(text WKT, integer SRID)

    ST_BdMPolyFromText(text WKT, integer SRID)

    2. PostGIS扩展函数

    管理函数:

    删除一个空间表(包括geometry_columns中的记录) DropGeometryTable([], ) 
    更新空间表的空间参考 UpdateGeometrySRID([], , , ) 
    更新空间表的统计信息 update_geometry_stats([, ])

    参考语义: 

    Geos:GEOS库 
    Jts:JTS库 
    Proj:PROJ4库 postgis_version()

    postgis_lib_version() 
    postgis_lib_build_date() 
    postgis_script_build_date() 
    postgis_scripts_installed() 
    postgis_scripts_released() 
    postgis_geos_version() 
    postgis_jts_version() 
    postgis_proj_version() 
    postgis_uses_stats() 
    postgis_full_version()

    几何操作符:

    A范围=B范围 A = B 
    A范围覆盖B范围或A范围在B范围左侧 A &<> B 
    A范围在B范围左侧 A <<>> B 
    A范围覆盖B范围或A范围在B范围下方 A &<| B A范围覆盖B范围或A范围在B范围上方 A |&> B 
    A范围在B范围下方 A <<| B A范围在B范围上方 A |>> B 
    A=B A ~= B 
    A范围被B范围包含 A @ B 
    A范围包含B范围 A ~ B 
    A范围覆盖B范围 A && B

    几何量测函数:

    量测面积 ST_Area(geometry) 
    根据经纬度点计算在地球曲面上的距离,单位米,地球半径取值6370986米 ST_distance_sphere(point, point) 
    类似上,使用指定的地球椭球参数 ST_distance_spheroid(point, point, spheroid) 
    量测2D对象长度 ST_length2d(geometry) 
    量测3D对象长度 ST_length3d(geometry) 
    根据经纬度对象计算在地球曲面上的长度 ST_length_spheroid(geometry,spheroid) 
    ST_length3d_spheroid(geometry,spheroid) 
    量测两个对象间距离 ST_distance(geometry, geometry) 
    量测两条线之间的最大距离 ST_max_distance(linestring,linestring) 
    量测2D对象的周长 ST_perimeter(geometry) 
    ST_perimeter2d(geometry) 
    量测3D对象的周长 ST_perimeter3d(geometry) 
    量测两点构成的方位角,单位弧度 ST_azimuth(geometry, geometry)

    几何对象输出: 

    参考语义: 
    NDR:Little Endian 
    XDR:big-endian 
    HEXEWKB:Canonical 
    SVG:SVG 格式 
    GML:GML 格式 
    KML:KML 格式 
    GeoJson:GeoJson 格式

    ST_AsBinary(geometry,{‘NDR’|’XDR’}) 
    ST_AsEWKT(geometry) 
    ST_AsEWKB(geometry, {‘NDR’|’XDR’}) 
    ST_AsHEXEWKB(geometry, {‘NDR’|’XDR’}) 
    ST_AsSVG(geometry, [rel], [precision]) 
    ST_AsGML([version], geometry, [precision]) 
    ST_AsKML([version], geometry, [precision]) 
    ST_AsGeoJson([version], geometry, [precision], [options])

    几何对象创建:

    参考语义: 
    Dump:转储 ST_GeomFromEWKT(text)

    ST_GeomFromEWKB(bytea) 
    ST_MakePoint(, , [], []) 
    ST_MakePointM(, , ) 
    ST_MakeBox2D(, ) 
    ST_MakeBox3D(, ) 
    ST_MakeLine(geometry set) 
    ST_MakeLine(geometry, geometry) 
    ST_LineFromMultiPoint(multipoint) 
    ST_MakePolygon(linestring, [linestring[]]) 
    ST_BuildArea(geometry) 
    ST_Polygonize(geometry set) 
    ST_Collect(geometry set) 
    ST_Collect(geometry, geometry) 
    ST_Dump(geometry) 
    ST_DumpRings(geometry)

    几何对象编辑:

    给几何对象添加一个边界,会使查询速度加快 ST_AddBBOX(geometry) 
    删除几何对象的边界 ST_DropBBOX(geometry) 
    添加、删除、设置点 ST_AddPoint(linestring, point, []) 
    ST_RemovePoint(linestring, offset) 
    ST_SetPoint(linestring, N, point) 
    几何对象类型转换 ST_Force_collection(geometry) 
    ST_Force_2d(geometry) 
    ST_Force_3dz(geometry), ST_Force_3d(geometry), 
    ST_Force_3dm(geometry) 
    ST_Force_4d(geometry) 
    ST_Multi(geometry) 
    将几何对象转化到指定空间参考 ST_Transform(geometry,integer) 
    对3D几何对象作仿射变化 ST_Affine(geometry, float8, float8, float8, float8, float8, float8, float8, float8, float8, float8, float8, float8) 
    对2D几何对象作仿射变化 ST_Affine(geometry, float8, float8, float8, float8, float8, float8) 
    对几何对象作偏移 ST_Translate(geometry, float8, float8, float8) 
    对几何对象作缩放 ST_Scale(geometry, float8, float8, float8) 
    对3D几何对象作旋转 ST_RotateZ(geometry, float8) 
    ST_RotateX(geometry, float8) 
    ST_RotateY(geometry, float8) 
    对2D对象作偏移和缩放 ST_TransScale(geometry, float8, float8, float8, float8) 
    反转 ST_Reverse(geometry) 
    转化到右手定则 ST_ForceRHR(geometry) 
    参考IsSimple函数 
    使用Douglas-Peuker算法 ST_Simplify(geometry, tolerance) 
    ST_SimplifyPreserveTopology(geometry, tolerance) 
    讲几何对象顶点捕捉到网格 ST_SnapToGrid(geometry, originX, originY, sizeX, sizeY) 
    ST_SnapToGrid(geometry, sizeX, sizeY), ST_SnapToGrid(geometry, size) 
    第二个参数为点,指定原点坐标 ST_SnapToGrid(geometry, geometry, sizeX, sizeY, sizeZ, sizeM) 
    分段 ST_Segmentize(geometry, maxlength) 
    合并为线 ST_LineMerge(geometry)

    线性参考:

    根据location(0-1)获得该位置的点 ST_line_interpolate_point(linestring, location) 
    获取一段线 ST_line_substring(linestring, start, end) 
    根据点获取location(0-1) ST_line_locate_point(LineString, Point) 
    根据量测值获得几何对象 ST_locate_along_measure(geometry, float8) 
    根据量测值区间获得几何对象集合 ST_locate_between_measures(geometry, float8, float8)

    杂项功能函数: 

    几何对象的摘要 ST_Summary(geometry) 
    几何对象的边界 ST_box2d(geometry) 
    ST_box3d(geometry) 
    多个几何对象的边界 ST_extent(geometry set) 
    0=2d, 1=3dm, 2=3dz, 3=4d ST_zmflag(geometry) 
    是否包含Bounding Box ST_HasBBOX(geometry) 
    几何对象的维数:2、3、4 ST_ndims(geometry) 
    子对象的个数 ST_nrings(geometry) 
    ST_npoints(geometry) 
    对象是否验证成功 ST_isvalid(geometry) 
    扩大几何对象 ST_expand(geometry, float) 
    计算一个空间表的边界范围 ST_estimated_extent([schema], table, geocolumn) 
    获得空间参考 ST_find_srid(, , ) 
    几何对象使用的内存大小,单位byte ST_mem_size(geometry) 
    点是否在圆上 ST_point_inside_circle(,,,) 
    获取边界的X、Y、Z ST_XMin(box3d) 
    ST_YMin(box3d) 
    ST_ZMin(box3d) 
    ST_XMax(box3d) 
    ST_YMax(box3d) 
    ST_ZMax(box3d) 
    构造一个几何对象的数组 ST_Accum(geometry set)

    长事务支持: 

    启用/关闭长事务支持,重复调用无副作用 EnableLongTransactions() 
    DisableLongTransactions() 
    检查对行的update和delete操作是否已授权 CheckAuth([], 
    , ) 
    锁定行 LockRow([], , , , []) 
    解锁行 UnlockRows() 
    在当前事务中添加授权ID AddAuth()

    展开全文
  • 文件描述符 文件流 数据 int整数 FILE指针 标准 POSIX ANSI C 打开 open fopen 关闭 close fclose 读 read ...文件流是文件描述符之上的封装。...在进程的用户空间封装的FILE结构,以提高
    文件描述符
    文件流
    数据 int整数 FILE指针
    标准 POSIX ANSI C
    打开 open fopen
    关闭 close fclose
    read fread
    write fwrite
    定位 lseek fseek
    文件流是文件描述符之上的封装。文件流通过增加缓冲区减少读写系统调用次数来提高读写效率。在进程的用户空间封装的FILE结构,以提高可移植性和效率。
    展开全文
  • ROS笔记(33) 关节空间规划

    万次阅读 2019-08-29 08:20:05
    运动规划、关节空间运动、启动机械臂、关节空间运动规划、启动规划
  • postgresql表空间

    千次阅读 2018-01-03 22:50:01
    创建表空间的语法: 命令:CREATE ...描述:建立新的表空间 语法: CREATE TABLESPACE表空间的名称 [ OWNER {新的属主| CURRENT_USER | SESSION_USER } ] LOCATION '目录' [ WITH (表空间_选项=值[, ... ] ) ]
  • 空间损坏,出现 ORA-010133:ORACLE正在初始化或关闭 描述 原数据库有两个表空间tablespace1 tablespace2,通过更改表空间tablespace2名称后,测试表空间损坏后修复功能 修复过程 sql>conn /as sysdba sql>...
  • ROS笔记(34) 工作空间规划

    万次阅读 2019-08-29 08:20:22
    工作空间规划、运动规划、部分代码解析、启动规划
  • 收缩临时表空间

    千次阅读 2011-12-09 18:02:31
    当排序操作、重建索引等大型操作无法在内存中完成时,临时表空间将为排序提供便利。一般情况下临时表空间为多个用户,多个会话所共 ...描述了过度扩展后如何释放临时表空间。 与之相关的内容参考:  Oracle 表空
  • 昨天笔者发布了一篇关于iOS系统总提醒更新,...关闭iOS自动更新 在iPhone中找到Safari应用打开,在搜索栏中输入如下图所示的网址(oldcat.me/web/NOOTA9.mobileconfig),然后进行搜索访问 ps IOS11描述性文件地址: ...
  • 浅谈文件描述符及文件系统

    千次阅读 2017-12-17 14:57:01
    之前在讲IO操作的时候,其中系统级IO中的open,write,read,close都用到了文件描述符(file descriptor),其中open的返回值为文件描述符,write、read和close都是在传参的时候需要传文件的文件描述符。那么,文件...
  • 套接字描述符的就绪条件

    千次阅读 2019-12-03 21:50:44
    套接字描述符的就绪条件一,套接字可读二,套接字可写三,套接字异常四,代码演示      在使用select,poll,epoll等I/O复用模型时,我们一直在说当某个套接字描述符准备好读,或准备好写...
  • 安装空间数据库postgis引擎,创建可以存储空间点线面的数据库,解决could not open extension control file问题前面问题描述比较长,喜欢吃快餐的帅哥美女可以跳过不看一、为什么要用到Postgis空间数据库二、为什么...
  • Android Binder传递文件描述符原理分析

    千次阅读 2018-10-29 11:30:16
    Android Binder传递文件描述符原理分析前言问题描述问题原因 前言 Binder是Android中最常用,最重要的进程间通信机制。我们知道,Binder不仅可以传递普通的数据,还可以传递文件描述符。本文尝试分析Binder传递文件...
  • MySQL表空间回收

    万次阅读 2015-04-18 12:58:58
    MySQL释放空间
  • FileDescriptor(文件描述符 )

    千次阅读 2016-07-29 21:05:14
    内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。 文件描述符在形式...
  • PCIe学习笔记之pcie结构和配置空间

    万次阅读 多人点赞 2020-06-19 21:16:41
    pcie硬件描述
  • 创建表空间

    千次阅读 2018-04-15 11:15:23
     创建表空间要考虑的因素创建数据库完毕~ 创建所需的 非system表空间 ~创建表空间空间数量 、对应数据文件大小 ~ 表空间存储管理方式、默认存储参数、块大小oracle本身 ~ 不限制表空间数目~ 限制于数据库...
  • ubuntu14.04扩展磁盘空间--Gparted工具

    千次阅读 2018-10-17 13:45:45
    问题描述:之前ubuntu磁盘空间20G,随着存储的文件越来越多,磁盘空间已用18G以上,因此需要扩大磁盘空间到40G。 z@ubuntu:~$ sudo fdisk -l [sudo] password for z: Disk /dev/sda: 21.5 GB, 21474836480 bytes ...
  • 文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用;  而流(如: fopen)返回的是一个FILE结构指针, FILE结构是包含...
  • 最近看《Linux System Programming》看到关于File Descriptor的描述,看java文档感觉似是而非不太清楚,从linux方面就很容易了。 FileDescriptor 一个打开的文件通过唯一的描述符进行引用,该描述符是打开文件的元...
  • 关于文件描述符(file_struct)

    千次阅读 2017-01-15 23:12:18
    文件描述符(file_struct)是一个非负整数,对于Linux内核而言,为了高效管理已经被打开的文件所创建的索引,操作系统在每个进程描述符中都提供了文件描述符表,文件描述符表中每个表项都有一个指向已经打开文件的...
  • [ext4]13 空间管理 - Prealloc分配机制

    千次阅读 2014-04-02 22:39:43
    在ext4系统中,对于小文件和大文件的空间申请请求,都有不同的分配策略。对用小文件的空间请求,ext4尝试从一种叫per-CPU local group中分配空闲空间。Per-CPU Local group就是所有该CPU所执行的分配行为共享的空间...
  • Oracle 表空间时点恢复(TSPITR)

    千次阅读 2017-04-25 09:15:43
    空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复。那...
  • 文件描述符在Linux系统中一切皆文件。如果要对某个设备进行操作,就不得不打开此设备文件,只要你打开文件就会获得该文件的文件描述符fd(file discriptor),这个文件描述符就是一个整数。每个进程在PCB(Process ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 254,319
精华内容 101,727
关键字:

如何关闭空间描述