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
【Linux系统编程】
Linux系统编程
(二) ------ 多进程编程
一、进程的创建和调度相关概念:最基础的计算机动作被称为指令(instruction)。程序(program),就是一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时候被存储为可执行的文件。1.进程进程(process)是操作系统的概念,为程序的一次执行在操作系统中或内存中的映像,同时伴随着资源的分配和释放。并具有以下特征的活动单元。一组执行的指令序列一个当前状态相关的
穹蓝奥义
·
2017-01-08 21:37
【
Linux系统编程
应用】 Linux输入子系统(二)
1.设备ID信息结构体结构体如下:/**IOCTLs(0x00-0x7f)*/structinput_id{__u16bustype;__u16vendor;__u16product;__u16version;};structinput_absinfo{__s32value;__s32minimum;__s32maximum;__s32fuzz;__s32flat;};2.相关ioctl操作#de
沧海一笑-dj
·
2017-01-01 16:53
Linux环境高级编程
程序员经典书籍清单
awesome-programming-books 计算机系统与网络《图灵的秘密:他的生平、思想及论文解读》《计算机系统概论》《深入理解Linux内核》《深入Linux内核架构》《TCP/IP详解卷1:协议》《
Linux
wangtaotao
·
2016-12-27 19:00
Linux系统编程
之错误处理:errno和perror,strerror
Linux系统下错误处理方法:使用errno变量。头文件:errno.h在系统出现错误时内核把错误写入到变量errno中。用户的应用程序可以从这个变量中获取错误的原因。注意在系统调用返回失败时,必须紧接着引用errno变量,以避免程序中的下一条系统调用时覆盖errno的值。errno的值可以格式化使出,使用错误处理函数:perrorstrerror。perror和strerror函数都是用来打印错
fly__chen
·
2016-11-09 16:29
Linux系统编程
Linux系统编程
巩固--04
一.sprintf:往字符串中输入数据fprintf:往文件中输入数据读写文件用那一套函数?标C还是UC函数如果考虑通用性,就使用标C函数,如果确定只在Unix/Linux下使用,UC的也行timea.out可以查看a.out的运行时间文件读写的位置用偏移量记录,在文件表中存储了偏移量。函数lseek()可以随意移动偏移量off_tlseek(intfd,off_toffset,intwhence
昵称什么都是浮云
·
2016-10-18 09:18
Linux系统编程
Linux系统编程
巩固--03
系统调用--因为用户空间不能直接访问内核空间,想完成功能又必须得到内核的支持.因此,内核层提供了系统调用,做用户空间进入内核空间的桥梁。系统调用是一系列的函数,包括各种系统的功能。我们系统编程接触的大多数都是系统调用一.文件操作非常常用的函数,包括读写函数和非读写函数在linux中,几乎一切都是文件,目录,内存,各种硬件设备都可以看成文件比如/dev/tty代表键盘和显示器echohello默认输
昵称什么都是浮云
·
2016-10-18 09:18
Linux系统编程
Linux系统编程
巩固--02
一.静态库1.为什么需要库二进制形式目标模块的包a.o|b.o|----abc.a----库c.o|2.库的类型1)静态库:扩展名.a,库中所封装的二进制代码,在链接阶段被复制到调用模块中2)动态库:扩展名.so,库中所封装的二进制代码,在链接阶段并不复制到调用模块中,被嵌入到调用模块中的仅仅是被调用函数在共享库的地址,根据这个地址动态执行共享库中的代码(windows下.dll)3.构建静态库1
昵称什么都是浮云
·
2016-10-17 10:49
Linux系统编程
Linux系统编程
巩固--01
学习
Linux系统编程
主要包括学习一下内容:开发环境、内存管理、文件系统、进程管理、信号处理、进程通信、线程管理、线程同步和网络编程。
昵称什么都是浮云
·
2016-10-17 10:31
Linux系统编程
Linux系统编程
----僵尸进程
什么是僵尸进程?僵尸进程,指子进程退出后,父进程还没有回收子进程的资源,这个子进程就处在于僵尸状态。来看看如何产生?#include #include intmain(void) { pid_tpid; //zombie子进程先退出,父进程没有回收子进程资源 //这就是僵尸进程 //僵尸进程不能被直接杀死,只能通过杀死父进程来终止僵尸进程 pid=fork(); if(pid==0) { pr
morixinguan
·
2016-09-30 09:00
Linux系统编程
----孤儿进程
什么是孤儿进程? 孤儿进程, 指在父进程退出后,而子进程还在运行,这个子进程就成了孤儿进程,这时由init进程(pid=1)接管来看看例子:#include #include intmain(void) { pid_tpid; //父进程先结束,子进程还在运行 //如果父进程结束,则子进程的父亲为init //孤儿进程由进程他的祖先收留 pid=fork(); if(0==pid) {
morixinguan
·
2016-09-30 09:00
Linux系统编程
---守护进程
守护进程是什么?就是在后台运行的进程。那么如何创建守护进程呢? 1.创建孤儿进程 2.setsid()创建进程会话 3.重定向标准输入,标准输出 4.chdir,改当当前进程的工作目录接下来看一个例子:#include #include #include intmain(void) { //进程成为守护进程的步骤 //代号:Ss //守护进程也称为精灵进程 //1.产生孤儿进程 pid_tpi
morixinguan
·
2016-09-30 09:00
Linux系统编程
-----进程fork()
在开始之前,我们先来了解一些基本的概念:1.程序,没有在运行的可执行文件 进程,运行中的程序 2.进程调度的方法: 按时间片轮转 先来先服务 短时间优先 按优先级别 3.进程的状态: 就绪->>运行->>等待 运行->>就绪//时间片完了 等待->>就绪//等待的条件完成了 查看当前系统进程的状态psauxf status: DUninterruptiblesleep(usuallyIO)
morixinguan
·
2016-09-30 09:00
Linux系统编程
---实现目录或者文件拷贝
关于拷贝文件,前面写过一个例子:点击打开链接 ,可以看看,实现cp命令。这次我们实现一个目录和文件的拷贝,综合点。#include #include #include #include #include #include voidcopy_file(constchar*src,constchar*dest); voidcopy_directory(constchar*src,constchar
morixinguan
·
2016-09-30 09:00
【
Linux系统编程
应用】Linux音频编程实战(一)
在Linux下进行音频编程时,重点在于如何正确地操作声卡驱动程序所提供的各种设备文件,由于涉及到的概念和因素比较多,所以遵循一个通用的框架无疑将有助于简化应用程序的设计。1DSP编程对声卡进行编程时首先要做的是打开与之对应的硬件设备,这是借助于open系统调用来完成的,并且一般情况下使用的是/dev/dsp文件。采用何种模式对声卡进行操作也必须在打开设备时指定,对于不支持全双工的声卡来说,应该使用
沧海一笑-dj
·
2016-09-05 21:33
Linux环境高级编程
【
Linux系统编程
应用】Linux音频编程基础(一)
一、数字音频音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始声音的重现,实现这一步骤的设备常被称为模/数转换器(A/D)。A/D转换器以每秒钟上万次的速率对声波进行采样,每个采样点都记录下了原始模拟声波在某一时刻
沧海一笑-dj
·
2016-09-04 22:27
Linux环境高级编程
Linux系统开发9 线程同步
【本文谢绝转载原文来自http://990487026.blog.51cto.com】《大纲》
Linux系统编程
8 线程同步多线程共享资源,不加锁,同步互斥演示多线程共享资源,加锁,同步互斥演示读写锁:
990487026
·
2016-08-17 16:23
Linux
线程同步
系统开发
Linux
开发
linux系统编程
——管道pipe
管道pipe内核中的缓冲区,多数使用队列(数据结构)来实现的。而队列多采用环形队列,一般采用阻塞机制,还有另一种机制是覆盖机制(当队列满的时候,后入队的覆盖之前的数据)。下边例1完成的功能就是父进程向管道中写数据,子进程读父进程写的数据。——例1:/*************************************************************************>C
jobbofhe
·
2016-08-10 23:16
linux
Linux系统编程
-管道与文件
0x00管道经常用于进程间通信,进程间通过管道的读端和写端进程通信。我们介绍一个比较简单的例子。intmain(intargc,char*argv[]){intpipefd[2];if(pipe(pipefd)==-1)ERR_EXIT("pipeerror");pid_tpid;pid=fork();if(pid==-1)ERR_EXIT("forkerror");if(pid==0)//子进程
jltxgcy
·
2016-08-06 18:31
Linux开发之路
linux从入门到高手的学习书籍整理
.*)《鸟哥的私房菜基础篇、高级篇》《AdvancedBashShell》2、中级篇:熟练使用C语言、
Linux系统编程
、网络编程、熟悉TCP/IP原理《TheCProgrammingLanguage》
CareChere
·
2016-07-24 17:28
Linux/Unix
[置顶]
Linux系统编程
笔记说明
学习与思考我们在学习语言特性、系统编程等知识的时候,经常会有看着后面忘了前面,感觉记住了但是过几天就忘记的情况。究其原因,我认为是我们对知识点的学习只是以[旁观者]的身份来进行的:看书、看别人的博客、看视频等等,只知其然而不知其所以然,只学习分散的知识点而没有归纳成有关联的整体,只知道遇到什么问题应该用哪种固定方式解决而不知道问题为什么会出现、为什么要这么做。而要想真正的掌握这些知识,我们要向[参
wylblq
·
2016-07-06 19:00
感想
目录
《
Linux系统编程
》笔记 第四章(二)
系列文章目录:http://blog.csdn.net/wylblq/article/details/518416844.2EventPoll接口在学习第二章-I/O多路复用技术时提到了select()和poll()两个系统调用,这两个系统调用都能阻塞在多个文件描述符上,让出CPU资源,阻塞等待对应的文件读就绪、写就绪或者出现异常。但是上述两个系统调用都有一些潜在的问题(具体参看对应章节),内核2
wylblq
·
2016-07-06 16:00
编程
select
嵌入式
Linux系统编程
(六)——系统信息
嵌入式
Linux系统编程
(六)——系统信息一、时间Linux系统下常用的时间类型:time_t、structtm、structtimeval、structtimespec。
天山老妖S
·
2016-07-06 11:15
linux
嵌入式
系统编程
linux应用编程
嵌入式
Linux系统编程
(五)——目录文件函数
嵌入式
Linux系统编程
(五)——目录文件函数Linux中目录也是文件,目录操作函数为标准IO库函数。
天山老妖S
·
2016-07-06 11:34
linux
嵌入式
系统编程
linux应用编程
嵌入式
Linux系统编程
(四)——文件属性
嵌入式
Linux系统编程
(四)——文件属性一、文件属性概述Linux文件的属性主要包括:文件的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容。
天山老妖S
·
2016-07-06 11:57
linux
嵌入式
系统编程
linux应用编程
嵌入式
Linux系统编程
(三)——标准IO库
嵌入式
Linux系统编程
(三)——标准IO库与文件IO函数相类似,标准IO库中提供的是fopen、fclose、fread、fwrite等面向流对象的IO函数,这些函数在实现时本身就要调用linux的文件
天山老妖S
·
2016-07-06 11:54
linux
嵌入式
系统编程
linux应用编程
嵌入式
Linux系统编程
(二)——文件描述符控制函数fcntl
嵌入式
Linux系统编程
(二)——文件描述符控制函数fcntl由于fcntl函数实在过于灵活和复杂,本文将fcntl函数从文件IO中单独列出来,便于详细解读。
天山老妖S
·
2016-07-06 10:01
linux
嵌入式
系统编程
linux应用编程
嵌入式
Linux系统编程
(一)——文件IO
嵌入式
Linux系统编程
(一)——文件IO一、文件IO概念linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件IO操作。
天山老妖S
·
2016-07-06 10:15
嵌入式
linux
系统编程
linux应用编程
《
Linux系统编程
》笔记 第四章(一)
高级文件I/O系列文章目录:http://blog.csdn.net/wylblq/article/details/51841684前言第二章介绍了称为文件I/O的一系列系统调用,这些系统调用是文件操作的基础。这章介绍Linux提供的更高级的文件I/O方式,包括新的I/O方式、更高级的I/O多路复用方式以及内存映射等等。通过本章的学习,可以更加灵活高效的使用系统调用进行文件操作。4.1分散-聚合I
wylblq
·
2016-07-04 19:00
linux
C语言
笔记
linux系统编程
经典书籍
linux系统编程
经典书籍首先先学学编辑器,vim,emacs什么的都行。然后学makefile文件,只要知道一点就行,这样就可以准备编程序了。
Lina_ACM
·
2016-06-30 18:00
《
Linux系统编程
》笔记 第三章(二)
系列文章目录:http://blog.csdn.net/wylblq/article/details/518416843.6定位流标准库提供了与系统调用lseek()类似的函数来定位流中的读写位置。#include intfseek(FILE*stream,longoffset,intwhence); longftell(FILE*stream);与lseek()用法类似,whence提供了如下选
wylblq
·
2016-06-27 09:00
linux
笔记
[代码实例][
Linux系统编程
]相对路径转绝对路径
#include#include#include#include#include#defineMIN(x,y)(((x)2){printf("Usage:%s\n",argv[0]);returnEXIT_SUCCESS;}if(argc==1)rpath="./";elserpath=argv[1];if(rpath[0]=='/'){fprintf(stderr,"pathmustberela
cloudblaze
·
2016-06-23 02:54
代码实例
[代码实例][
Linux系统编程
]列出目录下的文件和子目录
系统调用#includeDIR*opendir(constchar*name);structdirent*readdir(DIR*dirp);代码实例#include#include#include#include#include#includevoidlist_files(constchar*dir_path);intmain(intargc,char*argv[]){if(argc>1&&st
cloudblaze
·
2016-06-22 13:29
代码实例
《
Linux系统编程
》笔记 第三章(一)
缓冲输入输出系列文章目录:http://blog.csdn.net/wylblq/article/details/51841684前言之前章节介绍了Linux为文件操作提供的系统调用,并提供了内核缓冲区和延迟写、预读技术来避免多次请求硬盘导致的程序效率低下问题。此外对于块设备来说,每次单独的读写请求以块大小(块是块设备的最小寻址单元)整数倍对齐地址时I/O的效率最高,因此若想获得更高的文件读写效率
wylblq
·
2016-06-20 13:00
C语言
笔记
Linux编程
《
Linux系统编程
》笔记 第二章(二)
系列文章目录:http://blog.csdn.net/wylblq/article/details/518416842.4同步I/O同步I/O意味着系统调用确保数据被写到磁盘上(至少是硬盘缓冲区,下同)时才返回。尽管内核提供的缓存I/O方式已经工作的很好了,但是在一些要求较高的系统中,数据需要尽快写入磁盘,减少断电等异常情况对数据造成破坏,可以用同步I/O要求并等待内核将数据写入磁盘。fsync
wylblq
·
2016-06-14 10:00
C语言
笔记
Linux编程
《
Linux系统编程
》笔记 第二章(一)
文件I/O系列文章目录:http://blog.csdn.net/wylblq/article/details/51841684前言文件概念对于Linux系统的重要性不言而喻,本章主要介绍了内核为文件的创建、读、写、定位等系统调用以及高效的I/O机制。Linux系统为文件操作提供了通用的系列系统调用,使开发人员能够对所有“文件”做相同的操作,同时还提供了ioctl()系统调用对非通用文件操作,fc
wylblq
·
2016-06-14 09:00
C语言
笔记
Linux编程
《
Linux系统编程
》笔记 第一章
简介和主要概念系列文章目录:http://blog.csdn.net/wylblq/article/details/518416841.1系统编程系统编程和应用层编程的区别与联系系统编程最突出的特点是要求系统程序员必须对他工作的系统的硬件和操作系统有深入和全面的了解。尽管目前越来越多的语言、框架在远离系统级编程,向高层业务靠拢,但系统级编程不会消亡,普通程序员也能从系统级编程取得收益。而Linux
wylblq
·
2016-06-13 18:00
C语言
笔记
Linux编程
Linux入门之入手开发板与开发环境的搭建 2016.5.7
这是我的关于Linux的第一篇文章,这个
Linux系统编程
系列的博客用于定期整理我学习Linux过程的一些知识,主要目的是记录自己的学习过程,利用写博客的过程来梳理自己的知识。
kangzhangqi
·
2016-05-07 22:25
Linux系统编程
Linux系统编程
-文件IO函数
一、ioctl函数ioctl用于向设备发控制和配置命令,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据。也就是说,read/write读写的数据是in-band数据,是I/O操作的主体,而ioctl命令传送的是控制信息,其中的数据是辅助的数据。例如,在串口线上收发数据通过read/write操作,而串口的波特率、校验位、停止位通过ioctl
PirLCK
·
2016-05-06 11:00
Linux编程
Linux系统编程
-文件打开关闭
一、文件描述符对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的。当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数)。后续对文件的操作只需通过该文件描述符,内核记录有关这个打开文件的信息(file结构体)。一个进程启动时,默认打开了3个文件,标准输入、标准输出、标准错误,对应文件描述符是0(STDIN_FILENO)、1(STDOUT_FILENO)、2(STD
PirLCK
·
2016-05-06 11:00
Linux编程
Linux系统编程
基础知识-Linux进程地址空间和虚拟内存
转载自:Linux进程空间和虚拟内存一、虚拟内存先来看一张图(来自《Linux内核完全剖析》),如下:分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确定是否有权限访问。每个特权级都有自己的程序栈,当程序从一个特
PirLCK
·
2016-05-06 11:00
Linux编程
Linux下undefined reference to ‘pthread_create’问题解决
接触了
Linux系统编程
中的线程编程模块,可gccsample.c(习惯把书上的sample代码写进sample.c文件中)出现“undefinedreferenceto‘pthread_create’
a2796749
·
2016-05-03 21:00
linux系统编程
之进程(四):进程退出exit,_exit区别即atexit函数
(转自)作者:mickole 出处:http://www.cnblogs.com/mickole/一,进程终止有5种方式:正常退出:从main函数返回调用exit调用_exit异常退出:调用abort由信号终止二,exit和_exit区别:关于_exit(): #include void_exit(intstatus); #include void_Exi
big_bit
·
2016-04-26 19:00
编程
linux
linux系统编程
之进程(三):进程复制fork,孤儿进程,僵尸进程
(转自)作者:mickole 出处:http://www.cnblogs.com/mickole/本节目标:复制进程映像fork系统调用孤儿进程、僵尸进程写时复制一,进程复制(或产生) 使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。子进程
big_bit
·
2016-04-26 19:00
编程
linux
PCB
linux系统编程
之进程(二):进程生命周期与PCB(进程控制块)
(转自)作者:mickole 出处:http://www.cnblogs.com/mickole/本节目标:进程状态变迁进程控制块进程创建进程撤消终止进程的五种方法一,进程状态变迁进程的三种基本状态就绪(Ready)状态当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行(Running)状态 当进程已获得处理机,其程序正在处理机上执行,此时的
big_bit
·
2016-04-26 17:00
编程
linux
PCB
linux系统编程
之进程(一):进程与程序
(转自)作者:mickole 出处:http://www.cnblogs.com/mickole/本节目标:什么是程序什么是进程进程数据结构进程与程序区别与联系一,什么是程序?程序是完成特定任务的一系列指令集合二,什么是进程?从用户的角度来看进程是程序的一次动态执行过程从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位。进程是资源分配的最小单位每一个进程都有自己独立的地
big_bit
·
2016-04-26 17:00
2016-4-18至2016-4-24
每周任务(18-24)任务一:1.设备驱动程序模块编程[v]任务二:
Linux系统编程
(每日3章)1.根据《系统编程》第一册。
lz_quiet
·
2016-04-24 20:00
2016-4-11至2016-4-17
任务四:
Linux系统编程
(
lz_quiet
·
2016-04-17 22:00
Linux系统编程
——I/O多路复用select、poll、epoll的区别使用
转载自:http://blog.csdn.net/tennysonsky/article/details/45745887I/O多路复用技术是为了解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调用。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪
SKY453589103
·
2016-04-12 21:00
linux
IO
异步
epoll
select
个人权威整理1-嵌入式开发学习路线
嵌入式LININX开发第一学习阶段,主要打好基础,学好C编程,
Linux系统编程
。嵌入式LININX开发第二学习阶段,掌握ARM汇编程序设计,驱动程序设计。
shuimanting520
·
2016-04-11 07:00
编程
嵌入式
C语言
ARM
电子
windows下diff安装使用
欢迎转载,转载请标明出处:1 GNUDIFF在GNU
Linux系统编程
中,经常会用到diff与patch生成补丁与打补丁。
notbaron
·
2016-04-08 23:00
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
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
其他