UNIX基础知识之时间值】的更多相关文章

本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 长期以来,UNIX系统一直使用两种不同的时间值: (1)日历时间 该值是自1970年1月1日00:00:00以来国际标准时间(UTC)所经过的秒数累计值(早期的手册称UTC为格林尼治标准时间).这些时间值用于记录文件最近一次的修改时间等. 系统基本数据类型time_t用于保存这种时间值. (2)进程时间 这也被称为CPU时间,用以度量进程使用的中央处理机…
第一章 UNIX基础知识 1.2 UNIX体系结构   从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们将这种软件称为内核(kernel),因为 它相对较小,且位于环境的核心.内核的接口被称为系统调用(system call).公共函数库构建在系统调用接口之上,应用程序既可以使用公共函数库,也可以使用系统调用.shell是一个特殊的应用程序,为运行其他应用程序提供了一个接口.   1.5 输入和输出 1.文件描述符 文件描述符(file descripti…
1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GNU 操作系统的内核 ) 内核 的接口是 系统调用 (system call) ,公用函数库 构建在系统调用之上,应用程序既可以调用公用函数库,也可以使用系统调用.shell 是一个特殊的应用程序,为运行其他应用程序提供了一个接口. 2. shell shell 是一个命令行解释器,它读取用户输入,然…
这一章节侧重一些基本概念和书中用到的一些名词. 一.引言 所有的操作都提供服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储区以及获得当前时间等. 二.UNIX体系结构 其实linux常见的系统调用不是非常多,本书附录A按字符顺序列出了常用系统调用的原型.其实linux的应用编程,一要熟悉linux的基本概念,二要对各系统调用充分了解练习. 三.登录和shell   3.1 登录 口令文件/etc/passwd记录用户的信息,作为登录的依据.以下为该文件的一条内容: username…
所有操作系统都为运行在它之上的程序提供各种服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储空间.提供时间等. UNIX体系结构 严格来说,操作系统是一种软件,它控制计算机硬件资源,提供程序运行环境.这种软件有个专业术语名称:内核.因为它小且位于计算机体系的核心.如下图所示: 上图中的系统调用包裹在内核的外围,隔离开内核以保护内核.同时,系统调用作为和内核沟通的中间桥梁. 公用函数库通常指的是C/C++的标准库,例如libc.glibc.libstdc++.libc++等标准库,不同…
登陆       1.登录名            系统在其 口令文件(通常是/etc/passwd文件) 中查看用户名,口令文件中包含了有关用户的信息.       2.shell            shell是一个命令解析器,读取用户输入的内容,然后执行命令.   文件和目录      1.文件系统            UNIX文件系统是 目录 和 文件 的一种层次结构. 所有 的起点成为根(root)目录, 根目录的名称是一个” / ”            目录 是一个包含目录项的…
一.UNIX体系结构 所有操作系统都为他们所运行的程序提供服务,典型的服务包括:执行新程序.打开文件.读文件.分配存储区等.严格意义上来说,操作系统可以定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们也将这种软件成为内核,因为它相对较小,并且位于环境的核心.内核的接口被称为系统调用.公共函数库构建在之上,普通的应用程序可以调用系统调用,也可以调用公共函数库.shell是一个特殊的应用程序,位运行其他应用程序提供了一个接口. 二.文件和目录 1.文件系统 UNXI文件系统是目录和文件的…
1.1 Unix体系结构 OS定义为一种软件,它控制计算机硬件资源,提供程序运行环境,一般称其为内核(kernel),它体积小,位于环境中心. 内核的接口为系统调用(system call),共用函数库构建在系统调用上,应用软件既可以使用公用函数库,也可以使用系统调用.shell是一种特殊的应用程序,它为运行其他应用程序提供一个接口. 下图为 UNIX 体系结构: 广义上,OS包括内核和一些软件,例如 Linux 是 GNU 操作系统使用的内核,可以称这种操作系统为 GNU/Linux,但是通常…
总所周知,UNIX环境高级编程是一本很经典的书,之前我粗略的看了一遍,感觉理解得不够深入. 听说写博客可以提高自己的水平,因此趁着这个机会我想把它重新看一遍,并把每一章的笔记写在博客里面. 我学习的时候使用的平台是Windows+VMware+debian,使用secureCRT来连接(可以实现多个终端连接). 因为第一章是本书大概的描述,所以第一章的我打算写得详细一点,而且书本的原话占的比例会比较多,重点的东西会用粗体显示出来. 1.1  引言 所有操作系统都为他们所运行的程序提供服务.典型的…
1. Unix 体系结构   内核的接口被称为系统调用 公用函数库构建在系统调用接口之上 应用软件既可以调用公用函数库,也可以直接进行系统调用   2. 文件和目录 目录操作函数:opendir---> readdir---> closedir struct dirent 结构体 stat 系统调用   3.程序.进程.线程 程序:存放在磁盘上.并处于某个目录中的一个可执行文件.使用exec系列函数将程序从磁盘读入存储器,并使其执行 进程:程序的执行实体.进程控制的3个函数:fork.exec…
UNIX体系结构: 从严格意义上讲,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们通常将这种软件称为内核(Kernel),因为他相对较小,而且位于环境的核心.图片显示了UNIX系统的体系结构. 内核的接口被称为系统调用(system call).公用函数库构建在系统调用接口只是,应用程序即可使用公用函数库,也可以使用系统调用.shell是一个特殊的应用程序,为运行其他应用程序提供一个接口. 登录: 系统口令文件通常是/etc/passwd.口令文件中的登录项由7个以冒号…
1.UNIX体系结构 什么叫做内核? 内核是一种软件,它控制计算机硬件资源,并提供程序的运行环境. 什么叫操作系统? 在广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,如可以向用户提供服务之类的. 什么是系统调用? 内核的接口被称为系统调用.公用函数库构建在系统调用接口上,应用软件既可使用公用函数库,也可使用系统调用. 2.文件和目录 创建新目录的时候会自动创建两个文件名:.和... 在根目录下,这两个文件是同一个文件. 目录是一个包含许多目录项的文件,在逻辑上,可以认…
1.用户在登陆linux系统时,先键入登录名,然后键入口令.系统在其口令文件(通常是/etc/passwd文件)中查看登录名.口令文件中的登陆项由7个以冒号分隔的字段组成,它们是:登录名.加密口令.数值用户ID.数值组ID.注释字段.起始目录以及shell程序.huangcheng:x:1000:1000:ubuntu,,,:/home/huangcheng:/bin/bash2.在支持线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程. …
2015.1.27星期二,早晨阴天,中午下雪了今天上午老师不上课,程序语句,记一下:main(void){ int c; while((c = getc(stdin)) != EOF) if(putc(c,stdout) == EOF) 将字符写到标准输出 err_sys("output error"); if(ferror(stdin)) err_sys("input error"); exit(0);} 从标准输入读命令并执行:int main(){ char…
一.用户ID 口令文件(/etc/passwd)登录项中的用户ID(user ID)是个数值,它向系统标识各个不同的用户.系统管理员在确定一个用户的登录名的同时,确定其用户ID.用户不能更改其用户ID.通常每个用户有一个唯一的用户ID. 用户ID为0的用户为根(root)或超级用户(superuser).在口令文件中,通常有一个登录项,其登录名为root,我们称这种用户的特权为超级用户特权.如果一个进程具有超级用户特权,则大多数文件权限检查都不再进行.某些操作系统功能只限于向超级用户提供,超级用…
当UNIX函数出错时,常常会返回一个负值,而且整型变量errno通常被设置为含有附加信息的一个值.例如,open函数如成功执行则返回一个非负文件描述符,如出错则返回-1.在open出错时,有大约15种不同的errno值(文件不存在.权限问题等).某些函数并不返回负值而是使用另一种约定.例如,返回一个指向对象的指针的大多数函数,在出错时,将返回一个null(或NULL)指针. 文件<errno.h>中定义了符合errno以及可以赋予它的各种常量,这些常量都以字符E开头.另外,UNIX系统手册第2…
一.程序 程序(program)是存放在磁盘上.处于某个目录中的一个可执行文件.使用6个exec函数中的一个由内核将程序读入存储器,并使其执行. 二.进程和进程ID 程序的执行实例被称为进程(process).某些操作系统使用任务(task)表示正在执行的程序. UNIX系统确保每个进程都有一个唯一的数字标识符,称为进程ID(process ID).进程ID总是一个非负整数. 程序清单1-4 打印进程ID [root@localhost unix_env_advance_prog]# cat p…
一:时间类库了解 java.util.Date(基本废弃,Deprecated) –getTime(),返回自1970..1以来的毫秒数 java.sql.Date(和数据库对应的时间类) //与数据库相应 Calendar是目前程序中最常用的,但是是抽象类 两种方法,返回都是一样的 –Calendar gc=Calendar.getInstance(); –Calendar gc= new GregorianCalendar(); 简单工厂模式 Calendar gc = Calendar.g…
本章内容主要是为了学习UNIX的基本知识和一些最基本的系统函数. 学习的关键就是跟随者书本敲代码.本节遇到的第一个问题就死本书的apue.h这个文件:一开始没有注意这个文件,盲目的去百度,一番百度之后发现,其实这个文件的源码就在书的附录里面.这个给我一个教训,学习还是静下心来学习,没有一颗安定的心无法学习好,这是个教训啊,以后再也不能犯了. 关于apue.h这个文件的源码先贴在本章中便于复制 /* Our own header, to be included before all standar…
一.文件描述符 文件描述符(file descriptor)通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件.当内核打开一个已有文件或创建一个新文件时,它返回一个文件描述符.在读.写文件时,就可以使用它. 二.标准输入.标准输出和标准出错 按惯例,每当运行一个新程序时,所有的shell都会为其打开三个文件描述符:标准输入(standard input).标准输出(standard output)以及标准出错(standard error).如果没有做什么特殊处理(如重定向),则这三…
1.C++实现ls命令 #include<dirent.h> #include<stdlib.h> #include<iostream> #include "apue.h" using namespace std; int main(int argc,char * argv[]){ DIR *d struct dirent *dirp; if(argc!=2){ cout<<"usage: ls directory_name&q…
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 信号(signal)是通知进程已发生某种情况的一种技术.例如,若某一进程执行除法操作,其除数为0,则将名为SIGFPE(浮点异常)的信号发送给该进程.进程如果处理信号有三种选择: (1)忽略该信号.有些信号表示硬件异常,例如,除以0或访问进程地址空间以外的单元等,因为这些异常产生的后果不确定,所以不推荐使用这种处理方式. (2)按系统默认方式处理.对于除…
上图为UNIX操作系统的体系结构.内核的接口被称为系统调用(system call),公用函数库构建在系统调用接口之上,应用软件既可以使用公用函数库,也可直接使用系统调用. 更详细的说明如下: 所有操作系统都提供多种服务的入口点,程序由此向内核请求服务.各种版本的UNIX实现都提供定义明确.数量有限.可直接进入内核的入口点,这些入口点被称为系统调用. 系统调用接口总是在<UNIX程序员手册>的第2部分中说明,在第3部分定义了程序员可以使用的通用函数.虽然这些函数可能会调用一个或多个内核的系统调…
1 shell程序就是位于应用软件与系统调用之间的程序   每个用户登录系统,系统就会为用户分配shell (用户的登录的口令文件 在  /etc/passwd 2 ls filename  运行原理   敲入命令传入main函数参数   根据argv[1]创建一个指向DIR的目录文件指针,并根据argv[1]创建目录    在从该目录文件读取文件,返回一个指向struct_dirent类型的指针    从而输出文件的名称 代码如下 #include <stdio.h> #include &l…
在第一篇中我们介绍了C#中基本的15种数据类型,这15种数据类型中又分为两大类,一种是值类型,一种是引用类型.值类型有sbyte.short.long.int.byte.ushort.uint.ulong.float.double.bool,引用类型有object.string.class类型,这两大类最大的区别就是在内存中存储的位置.方式不一样.(当我们打开运行一个程序的时候,实际上就会把当前程序需要执行的资源从硬盘加载到内存中,再把内存的数据送去CPU处理),现在来看一下它们是如何来进行存储…
程序清单1-1 列出一个目录中的所有文件(ls命令的简要实现): [root@localhost unix_env_advance_prog]# cat prog1-.c #include "apue.h" #include <dirent.h> int main(int argc, char *argv[]) { DIR *dp; struct dirent *dirp; ) err_quit("Usage: ls directory_name");…
一.线程 线程是进程某程序段的一次运行. 1.线程共享资源,利用共享的资源,线程很容易能够互相通信 (1)进程代码段:每个线程有各自的寄存器组,在运行时期拷贝给cpu寄存器,来确定运行的是哪段代码段. (2)公共数据:堆(指的全局堆,线程自身创建的堆独享),全局变量,静态变量,常量, (3)打开文件描述符 (4)信号处理器,信号处理器是p_thread库提供的对信号处理的系统函数. (5)进程id和进程组id 2.线程独享资源 (1)栈,自己申请的堆, (2)信号屏蔽码:每个线程对不同信号的处理…
整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. 安装.启动和连接 安装 安装完MySQL Server后,需要运行mysql_secure_installation确保安全, 运行mysql_secure_installation会执行几个设置: 为root用户设置密码 是否删除匿名账号 是否取消root用户远程登录 是否删除test库和对te…
× 目录 [1]标准时间 [2]字符串 [3]闰年[4]月日[5]星期[6]时分秒 前面的话 在介绍Date对象之前,首先要先了解关于日期和时间的一些知识.比如,闰年.UTC等等.深入了解这些,有助于更好地理解javascript中的Date对象.本文将介绍javascript关于日期和时间的基础知识 标准时间 一般而言的标准时间是指GMT和UTC,以前是GMT,现在是UTC GMT 格林尼治标准时间(GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线…
前言 之前对几个没什么理解,只是简单的用过可空类型,也是知道怎么用,至于为什么,还真不太清楚,通过整理本文章学到了很多知识,也许对于以后的各种代码优化都有好处. 本文的重点就是:值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱. 这一句话概括起来很简单,可是真正的理解起来却没那么简单,对于我来说吧. 值类型和引用类型 C#值类型数据直接在他自身分配到的内存中存储数据,而C#引用类型只是包含指向存储数据位置的…