E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
环境高级编程
unix
环境高级编程
2
一、登录目录登录时从/etc/passwd读取的其实目录二、文件描述符一个小的非负整数,shell自动打开三个描述符标准输入、标准输出、标准错误//从标准输入写入标准输出#includeusingnamespacestd;#defineBUFFSIZE8192intmain(void){intn;charbuf[BUFFSIZE];while((n=read(STDIN_FILENO,buf,BU
CodingHeart
·
2017-03-02 15:21
10000小时计划
c++
unix
环境高级编程
1
一、登录系统登录时系统一般查找/etc/passwd文件,记录的用户相关信息,用冒号分隔,7个字段分别代表用户名、密码、用户ID、组ID、注释、起始目录、shell程序二、常用的命令解释器是bash三、原始的ls代码#include#include#includeusingnamespacestd;intmain(intargc,char*argv[]){DIR*dp;structdirent*d
CodingHeart
·
2017-03-02 00:41
10000小时计划
c++
孤儿进程与僵尸进程总结
转自Anker——工作学习笔记:http://www.cnblogs.com/Anker/p/3271773.html1、前言之前在看《unix
环境高级编程
》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊
JT_enlightenment
·
2017-01-16 15:17
linux学习
java并发编程学习---之一
由于之前的话是做C++client端的编程,一个application直接在一个process里完成的,没有接触到thread相关的知识(相关的同步,锁都是在UNIX
环境高级编程
里学
lzh2nix
·
2017-01-02 00:00
concurrency
java
malloc与free
《UNIX
环境高级编程
》在大部分操作系统中,内存分配由以下两个简单的函数来处理:void*malloc(longnumbytes):该函数负责分配numbytes大小的内存,并返回指向第一个字节的指针。
lnredone
·
2016-12-23 11:08
程序
操作系统
系统
UNIX
环境高级编程
学习之路(六)----进程控制
对于UNIX环境编程,工作中经常会用到相关知识,作为学习UNIX环境编程的经典书籍–UNIX
环境高级编程
,是每个UNIX编程人员必看的经典书籍之一,为了将相关知识重新进行学习,以系统的整合所学知识,遂以博文形式作为总结
drlmemory
·
2016-12-19 17:34
Linux
UNIX
环境高级编程
学习之路(五)----进程环境
对于UNIX环境编程,工作中经常会用到相关知识,作为学习UNIX环境编程的经典书籍–UNIX
环境高级编程
,是每个UNIX编程人员必看的经典书籍之一,为了将相关知识重新进行学习,以系统的整合所学知识,遂以博文形式作为总结
drlmemory
·
2016-11-16 15:16
Linux
Linux opendir函数
opendir()头文件#include#include函数声明DIR*opendir(constchar*addr)//pathunix
环境高级编程
的例子#include#include#include"apue.h"intmain
cslqm
·
2016-11-06 20:32
Linux环境编程
unix
环境高级编程
--进程环境与进程控制
1.进程环境a)终止i.进程终止1.正常终止:return+exit、_exit系a)【exit与_exit的区别】:exit退出时按atexit注册的相反顺序调用注册过的函数,对打开的流调用fclose将缓冲区的数据写到文件上(刷新缓冲区)。_exit没有b)【exit与自然返回return的区别】:return返回上层的函数调用,exit直接结束进程2.异常终止:信号+abort+线程响应取消
罗磐
·
2016-11-04 11:50
unix环境编程与网络编程
unix
环境高级编程
--进程关系与守护进程
1.进程间关系与守护进程1.进程,进程组,会话,终端之间的关系a)进程一定在一个进程组之中,一个会话可以包括多个进程组。一个会话对应一个控制终端。b)进程组存在理由:有了进程组id,就可以一下子kill一片的进程,方便管理c)会话存在的理由:linux是一个多用户多任务的分时操作系统,必须要支持多个用户登录同一个操作系统,当一个用户登录一次终端时就会产生一个会话。每个会话有一个会话首进程,即【创建
罗磐
·
2016-11-04 11:49
unix环境编程与网络编程
进程学习:处理僵尸进程的两种方式
一、避免僵尸进程之✈✈✈✈形成孤儿进程《Unix
环境高级编程
》8.6节#in
财务码农小老板
·
2016-11-03 22:20
fork
&
thread
unix
环境高级编程
--线程同步
线程同步手段a)概要i.包括互斥量、读写锁、条件变量、自旋锁、屏障。ii.上述锁都可以通过各自的属性对象设置锁的属性,并且都具有进程共享属性。所谓进程共享属性:也即进程们通过nmap享有一块共享内存。当需要对共享内存中的东西进行同步时,就需要锁,开启锁们的进程共享属性,就可以在共享内存中分配锁,从而达到同步多进程访问共享内存的某个东西的效果。iii.进阶使用建议1.尽量最低限度的共享对象,减少同步
罗磐
·
2016-11-01 17:25
unix环境编程与网络编程
unix
环境高级编程
--进程间通信机制
1.进程间通信机制a)管道(管道引用结束,管道中内容全部删除)【读写内核缓冲区】i.缺点:只能承载无格式字节流;缓冲区大小受限ii.匿名管道(数据通过内核流通、双向流通需要两条管道(或popen,pclose))1.半双工、只能在具有血缘关系的进程之间使用2.匿名管道会在关闭两端之后由系统自动销毁回收3.使用示例Intfd[2];//创建数组Pipe(fd);//创建管道Pid_tpid=fork
罗磐
·
2016-11-01 17:26
unix环境编程与网络编程
unix
环境高级编程
--进程间通信机制
1.进程间通信机制a)管道(管道引用结束,管道中内容全部删除)【读写内核缓冲区】i.缺点:只能承载无格式字节流;缓冲区大小受限ii.匿名管道(数据通过内核流通、双向流通需要两条管道(或popen,pclose))1.半双工、只能在具有血缘关系的进程之间使用2.匿名管道会在关闭两端之后由系统自动销毁回收3.使用示例Intfd[2];//创建数组Pipe(fd);//创建管道Pid_tpid=fork
罗磐
·
2016-11-01 17:26
unix环境编程与网络编程
unix
环境高级编程
--IO
1.IO模型a)IO操作分为两步:1.等待数据(可以复制了);2.从内核复制准备好的数据b)【同步IO】包括【阻塞式IO】、【非阻塞式IO】、【IO复用】和【信号驱动式IO】。这四种IO的区别在于第一阶段——等待数据。阻塞式IO是一直傻等,非阻塞式IO如果数据未准备好,那么返回错误。IO复用打包一众非阻塞式描述字,大家一块儿等,直到有一个描述字准备好了。信号驱动式IO,安装信号,由信号来告诉进程数
罗磐
·
2016-11-01 17:10
unix环境编程与网络编程
unix
环境高级编程
--IO
1.IO模型a)IO操作分为两步:1.等待数据(可以复制了);2.从内核复制准备好的数据b)【同步IO】包括【阻塞式IO】、【非阻塞式IO】、【IO复用】和【信号驱动式IO】。这四种IO的区别在于第一阶段——等待数据。阻塞式IO是一直傻等,非阻塞式IO如果数据未准备好,那么返回错误。IO复用打包一众非阻塞式描述字,大家一块儿等,直到有一个描述字准备好了。信号驱动式IO,安装信号,由信号来告诉进程数
罗磐
·
2016-11-01 17:10
unix环境编程与网络编程
linux c编程复习笔记11-14章
大四,找工作前重新整理一下过往的Linuxc编程知识本人之前学的是《linux高级程序设计》加一些网上看的文章博客,翻了一些《Unix
环境高级编程
(第二版)》和《Unix网络编程》玩此次系统巩固下,完整阅读下
young0boy
·
2016-10-25 14:49
linux
c
UNIX
环境高级编程
学习之路(一)----文件I/O
对于UNIX环境编程,工作中经常会用到相关知识,作为学习UNIX环境编程的经典书籍--UNIX
环境高级编程
,是每个UNIX编程人员必看的经典书籍之一,为了将相关知识重新进行学习,以系统的整合所学知识,遂以博文形式作为总结
drlmemory
·
2016-10-20 15:11
Linux
博士第一年,要把这些计算机基础课程学好(附教程)
moreeffectiveC++;python&linuxscript;操作系统类:深入理解计算机系统;Linux&Unix编程:Linux内核编程;深入理解linux内核;Unix编程艺术;Unix
环境高级编程
硬件原理
StevenYang313
·
2016-10-14 19:05
linux c编程复习笔记1-10章
大四,找工作前重新整理一下过往的linuxc编程知识本人之前学的是《linux高级程序设计》加一些网上看的文章博客,翻了一些《Unix
环境高级编程
(第二版)》和《Unix网络编程》玩此次系统巩固下,完整阅读下
young0boy
·
2016-10-14 11:14
linux
c
《UNIX
环境高级编程
》--9进程关系
进程关系终端登录:BSD系统:当系统自举时,内核创建进程ID为1的进程,即init进程init进程读取文件/etc/ttys,对每个允许登录的终端设备,init调用一次fork,其所生成的子进程则execgetty程序(以一个空的环境)getty对终端设备调用open函数,以读、写方式将终端打开。一旦设备被打开则文件描述符0、1、2被设置到该设备然后getty输出login:之类的信息,并等待用户
yqtaowhu
·
2016-08-24 19:57
Linux/Uinx
《UNIX
环境高级编程
》十七高级进程间通信读书笔记
1、UNIX域套接字UNIX域套接字用于在同一台计算机上运行的进程之间的通信。UNIX域套接字提供流和数据报两种接口。UNIX域数据报服务是可靠的,既不会丢失报文也不会传递出错。使用socketpair函数来创建一对无命名的、相互连接的UNIX域套接字。#includeintsocketpair(intdomain,inttype,intprotocol,intsockfd[2]);//若成功,返
ZhichengYee
·
2016-08-20 12:50
UNIX环境高级编程
《UNIX
环境高级编程
》七进程环境读书笔记
1、进程终止有8种方式使进程终止,其中5种为正常终止:(1)从main返回;(2)调用exit;(3)调用_exit或_Exit;(4)最后一个线程从其启动例程返回;(5)从最后一个线程调用pthread_exit;异常终止有三种方式:(6)调用abort(7)接到一个信号(8)最后一个线程对取消请求做出响应#includevoidexit(intstatus);void_Exit(intstat
ZhichengYee
·
2016-08-08 20:27
UNIX环境高级编程
APUE3学习笔记-第一章-UNIX基础知识
——上善若水,大道至简环境:Ubuntu1604LTS编辑器:Vim编译器:gcc材料:UNIX
环境高级编程
第三版AdvancedProgrammingintheUNIX®Environment,ThirdEdition
itisyang
·
2016-08-06 23:31
APUE
unix
环境高级编程
-高级IO
非阻塞IO:之前曾经把系统调用分为两类,低速系统调用和其他,低速系统调用可能会使进程永远阻塞的一类系统调用。包括:某些文件类型(终端设备、读管道)的数据并不存在,读操作可能会使调用者永远阻塞。如果数据不能被相同的文件类型立即接受,写操作可能会使调用者永远阻塞对已经加上强制记录锁的文件进行读写某些ioctl操作某些进程通信函数非阻塞IO使我们可以发出open、read和write这样的IO操作,并使
hahachenchen789
·
2016-08-05 15:46
Linux
(十三) [终篇] 一起学 Unix
环境高级编程
(APUE) 之 网络 IPC:套接字
.....目录(一)一起学Unix
环境高级编程
(APUE)之标准IO(二)一起学Unix
环境高级编程
(APUE)之文件IO(三)一起学Unix
环境高级编程
(APUE)之文件和目录(四)一起学Unix
环境高级编程
0xCAFEBABE
·
2016-08-03 09:00
linux下文件操作需要关注的函数
前述:本文并不是为了详细讲解每个函数的细节,细节可参考man手册或者《unix
环境高级编程
》一、打开或者创建文件#include#include#includeintopen(constchar*pathname
带鱼兄
·
2016-08-02 11:17
linux之文件操作
unix
环境高级编程
-信号(1)
信号是软件中断,信号提供了一种处理异步事件的方法每个信号都有一个名字,这些名字都以3个字符SIG开头,例如SIGABRT是夭折信号,当进程调用abort函数时产生这种信号。在头文件中,信号名都被定义为正整数常量。不存在编号为0的信号,这种信号叫做空信号。很多条件会产生信号:1.当用户按某些终端键时,引发终端产生的信号,比如delete键,通常产生中断信号(SIGINT)2.硬件异常产生信号:除数为
hahachenchen789
·
2016-07-31 14:34
Linux
unix
环境高级编程
-进程关系
会话:是一个或多个进程组的集合。通常是由shell管道将几个进程编成一组,比如proc1|proc2&进程调用setsid函数建立一个新会话。如果调用此函数的进程不是一个进程组的组长,此函数创建一个新会话,该进程会变成新会话的的会话首进程(sessionleader),此时,该进程是新会话中的唯一进程,该进程成为新进程组的组长进程,新进程组ID是该调用进程的进程ID,该进程没有控制终端,如果在调用
hahachenchen789
·
2016-07-31 11:51
Linux
unix
环境高级编程
-读书笔记(7)
终端登陆:1BSD终端登陆:当系统自举时,内核创建进程ID为1的进程,也就是init进程,init进程使系统进入多用户模式,init读取文件/etc/ttys,对每一个允许登陆的终端,init调用一次fork,所生成的子进程则execgetty程序。getty对终端设备调用open函数,将终端打开,然后getty输出login之类的信息,等待用户输入用户名。进程组:是一个或多个进程的集合,同一进程
hahachenchen789
·
2016-07-30 23:38
Linux
Linux C 收藏
某招聘要求:熟悉高性能分布式网络服务端设计开发,熟悉epoll、多线程、异步IO、事件驱动等服务端技术;《UNIX
环境高级编程
(第3版)》apue.h等源码文件的编译安装《UNIX网络编程(第3版)》unp.h
52php
·
2016-07-18 14:00
unix
环境高级编程
第七章习题的一些拙见
apue7.1:这道题目书上给出了明确的解释,没有明确返回值的时候,这里用shell检查返回值的时候是随机的,在不同的机器上会有不同的结果,具体取决于栈中的内容。这道题目我还是想把书上的有张图上一下,要分清楚exit和_exit的区别!这张图非常清晰的指出了exit函数和_exit的区别,这个据说是一个面试题,很显然,exit函数在返回到内核之前要进行一些清理工作,要执行用户自己定义的清理函数,和
code_mlym
·
2016-07-17 11:00
unix
标准
c语言
函数
编程
apue
unix
环境高级编程
第六章习题的一些拙见
整个第六章有点乏味啊,不是那么好玩,我还是想快点到后面的章节,很好玩。apue6.1:使用在6.3节中介绍的getspnam函数返回的spwd结构体中的sp_pwdp字段来访问加密字段,这个字段是在/etc/shadow文件中存储的,这个函数就是访问这个文件的系统接口。现在的linux操作系统在/etc/passwd中的加密口令字段都选择了使用占位符,而不真正的将加密字段给每个用户都能查看。apu
code_mlym
·
2016-07-11 16:01
apue
需要学习的书籍清单
现代操作系统》《计算机程序的构造与解释》《Linux内核设计与实现》《Unix&Linux大学教程》《鸟哥的Linux私房菜》《LinuxShell脚本攻略》 网络编程类:《UNIX网络编程》《UNIX
环境高级编程
denliv_hui
·
2016-07-10 15:36
《UNIX
环境高级编程
》---3.文件I/O
一、打开、创建文件、关闭文件文件描述符:一个非负整数,范围是0~OPEN_MAX-1。内核用它来标识进程正在访问的文件。当进程创建时,默认为它打开了3个文件描述符,它们都链接向终端:0:标准输入1:标准输出2:标准错误输出通常我们应该使用STDIN_FILENO,STDOUT_FILENO和STDERR_FILENO来替代这三个幻数,从而提高可读性。这三个常量位于中。2.open和openat函数
taoyanqi8932
·
2016-07-09 20:00
unix
openat()函数的用法示例
《Unix
环境高级编程
》的第三章和第四章出现了大量的以at结尾的函数,如openat、fstatat等,书中只是粗略的说明了下,没有实际的例子让人很难懂。
Lina_ACM
·
2016-07-09 08:00
关于path_alloc()函数
在《UNIX
环境高级编程
》学习中,在第四章的程序清单4-7中,发现了一个“错误”。
Lina_ACM
·
2016-07-08 09:00
《UNIX
环境高级编程
》---2 UNIX标准及实现
UNIX标准及实现UNIX标准ISOC:意图是提供C程序的可移植性,使得它能够适合于大量不同的操作系统。该标准不仅定义了C程序设计语言的语法和语义,还定义了标准库POSIX(PortableOperatingSystemInterface):指的是可移植操作系统接口。该标准的目的是提升应用程序在各种UNIX系统环境之间的可移植性。它定义了“符合POSIX”的操作系统必须提供的各种服务。POSIX包
taoyanqi8932
·
2016-07-07 20:00
unix
《UNIX
环境高级编程
》---1.UNIX基础知识
UNIX基础知识一、UNIX系统UNIX内核的接口称之为系统调用。公用函数库构建在系统调用接口之上。应用程序既可以使用公用函数库,也可以使用系统调用。UNIXshell是一个特殊的应用程序,它为其他应用程序提供了一个接口。路径名由斜线分隔的一个或者多个文件名组成的序列:以斜线开头的路径名称为绝对路径名以非斜线开头的路径名称为相对路径名文件系统根的名字/是一个特殊的绝对路径名。它不包含任何其他的字符
taoyanqi8932
·
2016-07-06 16:00
unix
【UNIX
环境高级编程
】信号安全——可重入函数
可重入函数(用于信号处理函数、且安全时的叫法),即是在信号处理函数中可以调用的函数,他们是安全的,不安全的如malloc(试想:线程正在调用malloc进行分配,而信号来了,在处理函数里面有调用malloc,那么就很有可能对进程造成破坏,破坏储存区维护的链表)、getpwnam等可重入函数在处理操作期间,会阻塞任何会引起不一致的信号发送。试想下面一个情况:因为在信号处理函数执行时,如果里面执行了低
weilin.jiang
·
2016-07-06 15:04
C/C++
Linux
【UNIX
环境高级编程
】信号安全——可重入函数
可重入函数(用于信号处理函数、且安全时的叫法),即是在信号处理函数中可以调用的函数,他们是安全的,不安全的如malloc(试想:线程正在调用malloc进行分配,而信号来了,在处理函数里面有调用malloc,那么就很有可能对进程造成破坏,破坏储存区维护的链表)、getpwnam等可重入函数在处理操作期间,会阻塞任何会引起不一致的信号发送。试想下面一个情况:因为在信号处理函数执行时,如果里面执行了低
Jammg
·
2016-07-06 15:00
APUE 1-3.c列出一个目录中的所有文件
仅用于将信息输出到标准错误;当程序作为守护进程运行时,需要有另外的出错例程(函数)来处理守护进程可能输出的信息,例如与syslog进程通信并记录到日志等,限于篇幅,这里没有整合相应的源码,有兴趣的童鞋,请参考《UNIX
环境高级编程
Lina_ACM
·
2016-07-06 09:00
APUE 《UNIX
环境高级编程
》编译问题彻底解决方案
前些天,写了篇博客(最后一年的时间,应该做些什么呢?)发誓要好好学一下《UNIX环境高级编译》(下面简称APUE),可一个小小的编译问题就悲剧了我好几天,比如APUE书上的第一个程序是这样的: #include"apue.h" #include int main(intargc,char*argv[]) { DIR*dp; structdirent*dirp; if(argc!=2) { err_
Lina_ACM
·
2016-07-05 11:00
APUE [Linux C 编程开发环境(工具链,编译,汇编,链接,库)基础知识与实践]
前言本博文包括对下面书籍的学习笔记,以及实际上机编程练习,程序运行分析等的总结,作为日后工作的参考:《UNIX
环境高级编程
(第三版)》《深度探索Linux操作系统:系统构建和原理解析》《深入理解计算机系统
Lina_ACM
·
2016-07-05 10:00
unix
环境高级编程
第五章习题的一些拙见
开心,又到更新新的一章的时间了XD!apue5_1:这道题还是有意思的,虽然看上去比较简单,但是其中蕴含的东西还是比较多的。先把自己在这章中最重要的体会写下来吧!首先这一章讲的是IO流,那么IO流和直接的文件的系统调用有什么不同那?我们先看一下read函数的原型size_tread(intfd,void*buf,size_tnbytes);很显然我们在进行系统调用的时候要设置缓冲区,而缓冲区大小的
code_mlym
·
2016-07-04 10:27
apue
《UNIX
环境高级编程
(第三版)》中apue.h头文件的设置
在学习《UNIX
环境高级编程
(第三版)》遇到了apue.h的问题,这个头文件是作者自己定义的下载地址在http://www.apuebook.com/下载src.tar.gz源代码的压缩包。
taoyanqi8932
·
2016-06-28 22:00
unix
unix
环境高级编程
第四章习题的一些拙见
重新开始更新第四章的内容,每天一点点。apue4.1:由于在这里lstat是不跟随符号文件的,而stat是跟随符号文件的,这样一来,如果使用stat,而不使用lstat那么就无法观察到符号文件。在书上4.3姐中有提到。apue4.2:首先我在ubuntu的shell上查看原来的umask是多少,结果是0002,这里touch一个文件是不确定的,但是其他者的权限中写的权限一定是没有的。因为创建一个文
code_mlym
·
2016-06-24 21:03
c语言
unix
函数
编程
标准
apue
SVR4 和 4.3+BSD说明
博客来源:http://bbs.chinaunix.net/forum-viewthread-tid-1508471.html我在学习Unix
环境高级编程
一书时,不时看到SVR4,4.3+BSD故然在网上找了一些资料
逍遥硖
·
2016-06-12 17:28
Linux系统编程
UNIX
环境高级编程
笔记之高级I/O
本章说明了很多高级I/O功能:非阻塞I/O——发一个I/O操作,不使其阻塞,记录锁,STREAMS机制I/O多路转接——select和poll函数readv和writev函数,以及存储映射I/O(mmap函数)
bakari
·
2016-06-05 16:00
unix
环境高级编程
第三章习题的一些拙见
写在前面:自学apue,时间有限,这个系列都是抽时间写的,目前已经看到15章,现在从头做题,如有错误还请指教。apue3.1:write和read这样的函数都属于系统调用,这里具体所指的没有缓冲区是没有用户缓冲区,而不是指没有内核缓冲区,这里以我个人的认识认为,这里write和read将数据拷贝到缓冲区后并不直接写到文件中,而是等一定条件发生后才写进去,但是具体机制还需研究。同时这里也暴露了一个问
code_mlym
·
2016-06-04 23:37
apue
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他