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系统编程
-几个多线程DEMO
第五章线程编程本章将分为两大部分进行讲解,前半部分将引出线程的使用场景及基本概念,通过示例代码来说明一个线程创建到退出到回收的基本流程。后半部分则会通过示例代码来说明如果控制好线程,从临界资源访问与线程的执行顺序控制上引出互斥锁、信号量的概念与使用方法。5.1线程的使用5.1.1为什么要使用多线程在编写代码时,是否会遇到以下的场景会感觉到难以下手?场景一:写程序在拷贝文件时,需要一边去拷贝文件,一
韦东山
·
2020-07-05 14:55
Linux驱动开发
Linux系统编程
:生产者消费者问题
Description生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。分析首先介绍我相对熟悉的sem写法:用数组并对其下标进行简单
NiXGo
·
2020-07-05 10:39
Linux系统编程
:哲学家问题
Description有五个哲学家绕着圆桌坐,每个哲学家面前有一盘面,两人之间有一支筷子,这样每个哲学家左右各有一支筷子。哲学家有2个状态,思考或者拿起筷子吃饭。如果哲学家拿到一只筷子,不能吃饭,直到拿到2只才能吃饭,并且一次只能拿起身边的一支筷子。一旦拿起便不会放下筷子直到把饭吃完,此时才把这双筷子放回原处。如果,很不幸地,每个哲学家拿起他或她左边的筷子,那么就没有人可以吃到饭了。分析该问题涉及
NiXGo
·
2020-07-05 10:39
Linux系统编程
复习(用于面试)
1.熟知一些命令的作用,比如说用vi操作多个文件之类的:man对你熟悉或不熟悉的命令提供帮助解释chmod权限修改ls查看目录、文件的属性、列举相应目录下文件clear清屏cp拷贝文件data显示当前时间rm删除文件和目录mount加载一个硬件设备mv移走目录或者改文件名su在不退出登陆的情况下,切换用户cd改变当前目录whoami确认自己身份pwd查看当前所在目录完整路径whereis查询命令所
如沐与清风
·
2020-07-05 10:12
系统编程
通信
网络
Linux系统编程
1、进程和程序程序:运行的程序,不占用系统资源。进程:活跃的程序,会占用系统资源,在内存中执行。同一个程序可以加载为不同的进程2、并发:在操作系统中,一个时间段中有多个进程都处于启动到运行完毕的状态,但,任何一个时刻点上仍有一个进程在运行。时钟中断:在多道程序设计模式中使用,三个程序同时进行,cpu设置一个时间,每隔一段时间给程序1使用,另一段时间给程序2使用单道程序设计模型:所有进程一个一个排队
清新的竹青
·
2020-07-05 08:38
Linux
linux系统编程
模拟火车售票
#include#includepthread_mutex_tlock;//定义互斥锁pthread_cond_tcond;//定义条件变量sem_tsem;//定义信号量intt=20;void*pth_1(void*arg){while(1){sem_wait(&sem);if(t>0){printf("站点1:售出第%d张票\n",t);t--;printf("剩余%d张票\n",t);if
qq_38779753
·
2020-07-05 07:24
Linux系统编程
错误处理函数
作为linux的菜鸟,最近在看《Linux/Uinx系统编程手册》,不得不说这是本很好很好的书。今天整理了一下在本书上册开始部分给出的错误处理函数如下,希望对大家有所帮助://tlpi_hdr.h#ifndefTPLI_HDR_H#defineTPLI_HDR_H/*Preventaccidentaldoubleinclusion*/#include/*Typedefinitionosusedby
healer-c
·
2020-07-05 06:11
Linux系统编程
linux系统编程
小项目——仿ftp
项目要求日志模块日志模块需要向文件里面输出信息,所以我们希望能像printf一样参数个数可变,所以声明时带上变量…,voidlog_write(constchar*format,…);,该函数用法与printf一样——在函数内部需要使用其他东西来接收这个个数可变的参数,所以我们使用了va_list,(参考:https://blog.csdn.net/qq_19923217/article/deta
啊阙阙阙
·
2020-07-05 06:46
c
linux
Linux系统编程
——网络编程基础(三)
四网络通信若在网络中,需要使客户端连接的地址为一个有效的IP地址,这样就能在两台计算机之间通信。除IP地址外,计算机名也可用来代表一台网络中的计算机。1.查询主机名称通过访问主机数据库实现的。服务器数据库接口函数在头文件netdb.h中定义。与此相关的函数有gethostbyaddr()和gethostbyname()两个,一般形式如下:structhostent*gethostbyaddr(co
无夜之凛冬
·
2020-07-05 03:25
Linux系统编程
第十节
Linux系统编程
-字符设备控制-ADC模数转换
-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.第一:字符类ADC模数转换和led灯类似,数模转换的设备节点也是在/dev目录下,如下图所示。这样有一个简单公式,将读取的数值r转化为电阻值R。R=r*10000/0xfff,即R=r*10000/4095。第二:模数转换例程1)首先添加头文件,如下图所示2)然后main函
嵌入式开发学习者
·
2020-07-05 02:48
对于系统编程的学习是 选择windows还是linux?
linux系统编程
之所以看起来很简单,是得益于Linux系统本身并不包括窗口管理系统(ex:GNOME/KDE),所以,那些介绍
linux系统编程
的书,对于每一个部分都很清晰:文件,进程,socket等
pcliuguangtao
·
2020-07-05 01:57
WINDOWS
OS
Unix/Linux/BSD
linux系统编程
----统计一个目录下的普通文件个数
主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能。首先介绍一下函数原型:打开一个空目录DIR*opendir(constchar*name);参数:目录名返回值:指向目录的指针读目录structdirent*readdir(DIR*dirp);参数:opendir的返回值返回值:指向目录的指针关闭目录intclosedir(DIR*di
diaoguan4535
·
2020-07-04 14:52
学习linux/unix编程方法的建议,学习Linux的四个步骤
学习Linux的四个步骤假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>
linux
cumtzhj
·
2020-07-04 14:35
Linux系统编程
33 进程环境 - 进程终止方式 以及 exit() atexit() _exit()
1main函数当前进程的出入口2进程的终止方式,十分重要,一定记清!正常终止:从main函数返回:return0调用exit:exit(0)/exit(1)...是库函数调用_exit或_Exit是系统调用最后一个线程从其启动例程返回最后一个线程调用pthread_exit异常终止:调用abort,发送一个abort信号给当前进程,杀掉当前进程接到一个信号并终止最后一个线程对其取消请求作出响应NA
奶牛养殖场小马
·
2020-07-04 06:46
Linux系统编程
Linux系统编程
30 系统数据文件和信息 - 时间函数精讲
时间戳:用户喜欢用字符串格式:char*我们,程序员喜欢用结构体表示时间信息中的各个段:structtm内核,以秒为单位:time_t关键函数time_ttime(time_t*tloc);structtm*gmtime(consttime_t*timep);structtm*localtime(consttime_t*timep);time_tmktime(structtm*tm);注意没有co
奶牛养殖场小马
·
2020-07-04 06:46
Linux系统编程
Linux系统编程
29 系统数据文件和信息 - 密码校验实例
mhr@ubuntu:~/work/linux/muluheyonghucaozuo/29$gedit/etc/shadowmhr@ubuntu:~/work/linux/muluheyonghucaozuo/29$su-Password:root@ubuntu:~#root@ubuntu:~#root@ubuntu:~#gedit/etc/shadow...mhr:$1$xxxxxxx$tYJR
奶牛养殖场小马
·
2020-07-04 06:15
Linux系统编程
Linux系统编程
32 系统数据文件和信息 -时间实验 获取100天后的时间
实验2:100天后的时间输出当前时间#include#include#include#defineTIMESTRSIZE1024intmain(){time_tstamp;structtm*tm;chartimestr[TIMESTRSIZE];//获取内核时间,即time_t格式时间stamp=time(NULL);//将time_t格式时间装换为tm格式时间,即将内核秒单位时间转为程序员结构体
奶牛养殖场小马
·
2020-07-04 06:15
Linux系统编程
Linux系统编程
31 系统数据文件和信息 -时间实验 打印时间log
实验1打印时间log#include#include#include#defineBUFSIZE1024#defineFNAME"/tmp/out"intmain(){FILE*fp;charbuf[BUFSIZE];intcount=0;time_tstamp;structtm*tm;fp=fopen(FNAME,"a+");if(fp==NULL){perror("fopen()");exit
奶牛养殖场小马
·
2020-07-04 06:15
Linux系统编程
Linux error函数 ——Linux编程
简介error系列函数是
Linux系统编程
中,一种debug的方式,定义在头文件中。
江山美人1
·
2020-07-04 02:01
Linux
C语言
Linux系统编程
——进程
Linux系统编程
——进程进程状态相关概念进程ID:标识进程的唯一数字(父进程ID:PPID,启动进程的用户ID:UID)。
liulangpingsai
·
2020-07-02 09:33
linux系统编程
Linux系统编程
之错误处理:perror,strerror和errno
1.在系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在头文件中声明如下:externinterrno;errno是一个由POSIX和ISOC标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改变,根据errno值的不同,我们就可以知道自己的程序发生了什么错误,然后进行
hjhomw
·
2020-07-02 02:20
Unix/Linux
APUE
Linux下undefined reference to ‘pthread_create’问题解决
接触了
Linux系统编程
中的线程编程模块,可gccpthread.c出现“undefinedreferenceto‘pthread_create’”,所有关于线程的函数都会有此错误,导致无法编译通过。
fightHHA
·
2020-07-02 00:00
linux
Linux 进程--父进程查询子进程的退出状态
转载至文章:
linux系统编程
之进程(六):父进程查询子进程的退出,wait,waitpid本节目标:僵尸进程SIGCHLDwaitwaitpid僵尸进程当一个子进程先于父进程结束运行时,它与其父进程之间的关联还会保持到父进程也正常地结束运行
xiaorenwuzyh
·
2020-07-01 07:15
Linux
linux
linux系统编程
:线程同步-信号量(semaphore)
线程同步-信号量(semaphore)生产者与消费者问题再思考在实际生活中,只要有商品,消费者就可以消费,这没问题。但生产者的生产并不是无限的,例如,仓库是有限的,原材料是有限的,生产指标受消费指标限制等等。为了进一步,解决好生产者与消费者问题,引入信号量进机制。信号量信号量(semaphore)是互斥量的升级版:互斥量的状态为0或1,而信号量可以为n。也就是说,使用互斥量时,最多允许一个线程进入
苏叔叔
·
2020-06-30 14:25
linux系统编程
linux系统编程
:线程同步-条件变量(cond)
线程同步-条件变量(cond)生产者与消费者问题再引入条件变量之前,我们先看下生产者和消费者问题:生产者不断地生产产品,同时消费者不断地在消费产品。这个问题的同步在于两处:第一,消费者之间需要同步:同一件产品只可由一人消费。第二,当无产品可消费时,消费者需等待生产者生产后,才可继续消费,这又是一个同步问题。详细了解:生产者消费者问题。条件变量条件变量是利用线程间共享的全局变量进行同步的一种机制,并
苏叔叔
·
2020-06-30 14:25
linux系统编程
linux系统编程
:线程同步-读写锁(rwlock)
线程同步-读写锁(rwlock)读写锁读写锁是互斥量的细化:显然,只有对全局资然进行写入操作时,才需要同步;在对全局资然进行读取操作时,是不需要锁的。相关函数pthread_rwlock_t//读写锁类型pthread_rwlock_init//初始化pthread_rwlock_destroy//销毁锁pthread_rwlock_rdlock//获取读锁pthread_rwlock_wrloc
苏叔叔
·
2020-06-30 14:25
linux系统编程
linux系统编程
-SOCKET通信基础编程(1)-UDP编程服务端程序
linux系统编程
-SOCKET通信基础编程(0)-UDP编程
linux系统编程
-SOCKET通信基础编程(1)-UDP编程服务端程序
linux系统编程
-SOCKET通信基础编程(2)-UDP编程客户端程序
SSS的博客
·
2020-06-30 10:45
linux系统编程
linux系统编程
-SOCKET通信基础编程-UDP编程实现文件下载
UDP编程实现文件下载基础模板可以参考:
linux系统编程
-SOCKET通信基础编程(0)-UDP编程
linux系统编程
-SOCKET通信基础编程(1)-UDP编程服务端程序
linux系统编程
-SOCKET
SSS的博客
·
2020-06-30 10:45
linux系统编程
udp
linux
c++
linux系统编程
-SOCKET通信基础编程(2)-UDP编程客户端程序
linux系统编程
-SOCKET通信基础编程(0)-UDP编程
linux系统编程
-SOCKET通信基础编程(1)-UDP编程服务端程序
linux系统编程
-SOCKET通信基础编程(2)-UDP编程客户端程序
SSS的博客
·
2020-06-30 10:45
linux系统编程
《
Linux系统编程
:进程同步与互斥_POSIX有名信号量》
在POSIX标准中,信号量分两种,一种是无名信号量,一种是有名信号量。无名信号量一般用于线程间同步或互斥,而有名信号量一般用于进程间同步或互斥。它们的区别和管道及命名管道的区别类似,无名信号量则直接保存在内存中,而有名信号量要求创建一个文件。前面我们学习了无名信号量的使用(详情请看《无名信号量》),这里我们学习有名信号量的使用。1)创建一个有名信号量所需头文件:#include#include#i
HarkerYX
·
2020-06-30 07:54
Linux/Unix
系统编程
校招操作系统知识总结
理论知识与
linux系统编程
结合理解记忆。同时与在linux网络编程中也涉及。
wwxy261
·
2020-06-29 22:47
算法
C/C++ 非科班校招学习路线总结
(基本的C++内容,模板,STL讲的略少)重点以及扩展内容:多态,虚函数,深入的STL内容,C++11内容,3.LinuxC语言主要包括Linux基本命令(不含shell编程),
Linux系统编程
,Linux
wwxy261
·
2020-06-29 22:47
算法
【Linux编程】守护进程(daemon)详解与创建
本文主要参考自:
linux系统编程
之进程(八):守护进程详解及创建,daemon()使用一、概述Daemon(守护进程)是运行在后台的一种特殊进程。
mick_seu
·
2020-06-29 20:22
Linux编程
守护进程
daemon
setsid
Linux系统编程
--网络Socket编程 之 I/O多路复用(select)服务器编程
文章目录I/O复用模型select函数操作描述符集select函数返回图解服务器初态第一个客户端连接第二个客户端连接select服务器代码Select服务器的缺点I/O复用模型调用select或poll,在这两个系统调用中的某一个上阻塞,而不是阻塞于真正I/O系统调用。阻塞于select调用,等待数据报套接口可读。当select返回套接口可读条件时,调用recevfrom将数据报拷贝到应用缓冲区中
梦小羊
·
2020-06-29 15:57
Linux系统编程
手册 学习笔记(一)
第三章系统编程概念1、系统调用的概念:用户通过系统调用来进入到linux内核中,可以利用应用程序编程接口(API)的形式来访问系统提供的服务。其中包括创建新的进程、执行I/O、为进程间通信创建管道等。2、用户态进行系统调用情况:用户通过调用glibc库中的外壳函数来发起系统调用。外壳函数会将系统调用所需参数传入到特定的寄存器內;系统调用进入内核的方式都是一样的。内核为了区分要调用哪一个系统操作,所
Capr1corn
·
2020-06-28 21:23
linux系统编程
linux
系统调用
《
Linux系统编程
(第2版)》
《
Linux系统编程
(第2版)》基本信息作者:(美)RobertLove译者:祝洪凯李妹芳付途出版社:人民邮电出版社ISBN:9787115346353上架时间:2014-4-18出版日期:2014年5
weixin_34417183
·
2020-06-28 19:33
嵌入式
Linux系统编程
(一)——文件IO
嵌入式
Linux系统编程
(一)——文件IO一、文件IO概念linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件IO操作。
weixin_34194379
·
2020-06-28 13:01
Linux系统编程
(1)——文件与I/O之C标准I/O函数与系统调用I/O
Linux系统的I/O也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于Linux平台。而标准I/O是ANSIC建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。两者一个显著的不同点在于,标准I/O默认采用了缓冲机制,比如调用fopen函数,不仅打开一个文件,而且建立了一个缓冲区(读写模式下将建立两个缓冲区),还创建了一个包含文
weixin_30556959
·
2020-06-27 21:29
Linux企业级项目实践之网络爬虫(1)——项目概述及准备工作
我们在学习了
Linux系统编程
之后,需要一些实战项目来提高自己的水平,本系列我们通过编写一个爬虫程序,将我们学习的知识进行综合应用,同时在实现项目的过程中逐渐养成一些有用的思维方式,并具有初步的软件开发思想
weixin_30299539
·
2020-06-27 15:17
linux系统编程
手册阅读笔记-c20:信号的基本概念
chapeter20:信号的基本概念内核信号机制实现http://www.spongeliu.com/165.html当进程P2向p1发送信号后,内核接受到信号,并将其放在p1的信号队列中,当p1再次陷入内核态时,会检查信号队列,并根据相应的信号调取相应的信号处理函数。-p1什么时候会陷入内核态?当前进程由于系统调用、中断或异常而进入系统空间,到返回用户空间的前夕。当前进程在内核中进入睡眠以后刚被
Wo_der
·
2020-06-27 11:31
随笔
linux
攻克 Linux 系统编程
他的文章融会贯通于孜孜不倦的技术实践和深入浅出的明理阐释之中,言之有物,读之有味,非常适用于有志于进一步深入研究
Linux系统编程
的人员,可以避免走弯路,是一门非常实用的课程。
GitChat的博客
·
2020-06-27 11:30
linux系统编程
之信号(一):中断与信号
一,什么是中断?1.中断的基本概念中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应。在有些情况下,尽管产生了
u011354758
·
2020-06-27 01:46
Linux系统编程
面试题
LinuxIPC机制管道(PIPE,FIFO(命名管道))、信号(signal)、消息队列(Messagequeues)、信号量(Semaphore)、共享内存(ShareMemory)、内存映射(MemoryMap)、套接字。管道(PIPE):管道实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的
Daozy极限编程
·
2020-06-26 18:24
UNIX/Linux系统开发
Linux 完全公平调度器
读书笔记,
Linux系统编程
第六章高级进程管理完全公平调度器Linux调度器为完全公平调度器,简称为CFS。和最近华为鸿蒙提出的确定时延调度相反。完全公平调度器和传统的Unix调度器有很大的区别。
墨镜猫
·
2020-06-26 05:50
计算机专业书籍推荐
计算机专业书籍推荐Linux编程:《鸟哥Linux私房菜》最权威的Linux书籍之一《
Linux系统编程
》对常用API讲述最详细的一本书《UNIX环境高级编程》经典《TheLinuxProgrammingInterface
printf("dream");
·
2020-06-25 20:44
程序人生
linux系统编程
--文件IO
文件操作inux中一切皆文件!只要掌握了文件操作,即可对linux下所有资源进行操作。文件操作就是对文件进行读写操作。对文件进行操作时,文件名是不能明确指定一个文件空间的,需要根据文件名首先找到对应inode号。一个inode号对应着一个固定的文件空间,对文件操作时,使用inode号进行操作,才能保证操作无误!对一个文件基本的操作,只有:读、写读:把文件内容读取出来,查看文件内容写:编辑文件,修改
CsData
·
2020-06-25 18:58
linxu系统编程
传智播客Python就业班
第1章python基础第1节linux操作系统基础第2节python语法基础第3节项目-飞机大战第2章python核心编程第1节.python核心编程第2节
linux系统编程
第3节网络编程第4节web服务器案例第
qq_36469210
·
2020-06-25 11:11
Python
Linux系统编程
(dup()和dup2())
作用:dup()和dup2()是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。对比于dup(),dup2()也一样,通
小麦大大
·
2020-06-25 09:46
linux网络与系统编程
linux系统编程
——ARP攻击数据包构造
一、摘要最近在学习怎么构造一个arp攻击的数据包,大体上搞定了,来总结一下吧!本文的主要参考:https://blog.csdn.net/smstong/article/details/7221184,感谢这位老哥提供的代码思路。我与他不同的地方在于MAC地址的转换(主要老哥写的比较复杂,我懒得看0.0)。二、概述与前置知识1.ARP帧的结构ARP协议是链路层的协议,链路层的数据单位是帧。链路层给
毛老C
·
2020-06-25 08:34
linux系统编程
Linux系统编程
——IO编程
1.Linux文件操作 “一切皆文件”是Linux系统的基本思想。Linux提供的虚拟文件系统为多种文件系统和外设驱动提供了统一的接口,基于此类接口,可以实现文件的新建、打开(open)、读(read)、写(write)、关闭(close),及对随机文件的定位(lseek)。 通常,一个进程打开现有文件或新建文件时,系统会返回一个文件描述符fd(filedescriptor),指示特定的文件,
Acuity.
·
2020-06-25 00:38
C
Linux应用编程
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
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
其他