![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux_Application
文章平均质量分 68
Greens_Ren
这个作者很懒,什么都没留下…
展开
-
线程池学习笔记
记录一下学习线程池的过程,代码用到的函数归结: pthread_mutex_lock pthread_mutex_unlock pthread_cond_wait pthread_cond_signal pthread_cond_broadcast pthread_create pthread_join 程序中还用到了链表, 还有一个知识点:任何类型的数据都可以是void类型,原创 2015-08-18 15:22:29 · 416 阅读 · 0 评论 -
socket之send函数和recv函数详解
1.send 函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接转载 2013-12-03 09:16:33 · 724 阅读 · 0 评论 -
vmware下窗口的调节
今天在VMWare下安装Linux ,启动后发现窗口非常小,连一个简单的网络配置的图形见面都不能完全显示,很郁闷,最后上网通过VMWare tools 来解决了这个问题首先,重新启动系统,启动过程中,选择VMWare里的 VM菜单中的 install vmware tools选项,安装vmware tools 工具,当系统启动进入后,发现桌面上存在一个安装镜像VMWare tools,默认转载 2013-11-28 20:43:05 · 678 阅读 · 0 评论 -
linux多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程转载 2013-11-27 21:37:21 · 122 阅读 · 0 评论 -
memset的使用
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar()转载 2013-11-26 19:25:45 · 705 阅读 · 0 评论 -
linux文件编辑-系统调用—open()
int open(const char *pathname, int flags)int open(const char *pathname, int flags, mode_t mode)pathname:要打开的文件名(包括路径,缺省为当前路径)flag:打开标记常见的打开标记:O_RDONLY 只读方式打开0_WRONLY 只写方式打开O_RDWR原创 2013-11-18 16:16:29 · 906 阅读 · 0 评论 -
linux文件编辑-系统调用—close()…
但我们操作完文件后要关闭文件:int close(int fd)fd:文件描述符,由系统分配。 int read(int fd, const void *buf, size_t length)功能:从文件描述符fd所指定的文件中读取length个字节到buf所指向的缓冲区中,返回值为实际读取的字节数。 int write(int fd, const void *buf, size_原创 2013-11-18 16:16:31 · 981 阅读 · 0 评论 -
linux-进程控制-getpid、getppid、…
进程理论基础:进程是一个具有一定独立功能的程序的一次运行活动。进程的状态:就绪态、执行态、阻塞态程序开始执行时首先从外存调入内存,进入就绪态,等待进程调度后进行执行,执行过程中如果发生I/O请求就进入阻塞态,如果I/O完成再次进入就绪态等待下一次调度。正在执行的程序如果时间片完也会重新进入就绪态等待下一次时间轮转的调度。进程ID(PID):标识进程的唯一数字父进程的ID(PPID)原创 2013-11-18 16:16:40 · 1236 阅读 · 0 评论 -
linux线程之厕所理论Mutex、Semaph…
Mutex:is a key to a toilet. One person can have the key - occupy thetoilet -at the time. When finished, the person gives(frees)the keyto the next person in the queue. Officially:"Mutexes are typica原创 2013-11-18 16:17:02 · 1179 阅读 · 0 评论 -
linux-UDP网络程序设计
基于UDP-服务器1、创建一个socket,用函数socket();2、绑定IP地址、端口等信息到socket上,用函数bind();3、循环接收数据,用函数recvfrom();4、关闭网络连接。基于UDP-客户端1、创建一个socket,用函数socket();2、绑定IP地址、端口等信息到socket上,用函数bind();3、设置对方的IP地址和端口等属性;4、发送数据,原创 2013-11-18 16:17:10 · 814 阅读 · 0 评论 -
linux下socket编程
一、基本socket函数Linux系统是通过提供套接字(socket)来进行网络编程的。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也有一个类似于打开文件的函数:socket(),调用socket(),该函数返回一个整型的socket的描述符,随后的连接建立、数据传输等操作也都是通过该socket实现。1、socket函数syntax:转载 2013-12-03 09:08:48 · 612 阅读 · 0 评论 -
linux下调用shell命令
1、system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #include定义函数 int system(const char * string);函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的原创 2013-12-03 16:10:58 · 938 阅读 · 0 评论 -
互斥锁与条件变量
这次的博文主要解释互斥锁和条件变量:首先介绍相关的函数: 互斥量: int pthread_mutex_init(pthread_mutex_t mutex, pthread_mutexattr_t attr) 这是动态初始化互斥锁,还可以静态初始化,pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER 互斥锁刚刚初始化后处于无锁状态。 in原创 2015-08-16 09:29:46 · 460 阅读 · 0 评论 -
多线程并发执行的注意事项
原文地址:http://blog.csdn.net/helloguonan/article/details/6791388同步就是要解决进程和线程中大量的并发问题,多个线程彼此配合,共同完成某项工作。比如多线程的同步,资源共享与争用,进程间通信等。线程同步技术主要包含两个方面: 1、多个线程推进顺序的控制问题。 2、访问共享资源的问题。 线程间的同步与互斥:1、转载 2014-05-29 22:18:54 · 1645 阅读 · 0 评论 -
shell脚本编写
原地址:1)linux下的批处理文件,基本就是shell脚本文件。1.一个最简单的脚本书写方法为:新建一个文件,名字为clean(自己定义的名字),在里面编写rm -fv *.o;ls -al;(可以写一些shell普通命令,命令用分号隔开) 2.执行方法(1)在控制台输入: sh clean(2)先给与脚转载 2014-05-23 21:35:23 · 566 阅读 · 0 评论 -
MIME Types类型
原地址:MIME TypesMIME 类型MIME (Multipurpose Internet Mail Extensions) is an Internet standard for describes message content types.MIME ( 多用途的网际邮件扩充协议)是用于描述信息内容类型的国际标准。MIME messages can contain t转载 2014-05-23 19:01:40 · 638 阅读 · 0 评论 -
Linux各个文件夹介绍
对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦。所以,在这里讲一下linux下的主要目录以及它们都是用来干什么的。 / This is the root directory. The mothership. The home field. The one and only top转载 2014-05-23 16:52:52 · 747 阅读 · 0 评论 -
虚拟地址与物理地址 -神贴
在网上看到一神贴,感觉把物理地址和虚拟地址,说的很不错。好好领悟。提问:各位高手大家好! 前一段时间一直在研究wince5.0中的地址映射问题。我的说法如下,请大家帮忙看一下有没有什么问题,一起讨论一下。 假设要写一个设备驱动程序,在datasheet上面可以看见一些地址,就是物理地址,而且针对不同的寄存器,它的地址是不同的。那么这个地址是如原创 2014-02-27 16:06:20 · 943 阅读 · 0 评论 -
linux下使用minicom
Linux下的Minicom的功能与Windows下的超级终端功能相似,适于在linux通过超级终端对 嵌入式设备的管理和调试以及对嵌入操作系统的升级,在调试是很方便,比nfs的速度要快, 我使用nfs联机时,总是出现nfs warning:mount version older thankernel RPCCall returned error 101等错误信息,原创 2013-11-18 16:17:38 · 867 阅读 · 0 评论 -
getopt()函数
每一天你都在使用大量的命令行程序,是不是感觉那些命令行参数用起来比较方便,他们都是使用getopt来实现的。在Linux下使用getopt写程序是一种比较cool的事情,下面来简单的介绍一下getopt的使用。=== getopt使用 ===在讨论参数处理之前,我们先明确两个概念:选项、选项参数gcc -g -o test test.c我们经常使用上面的命令来编译程转载 2013-12-23 10:58:06 · 671 阅读 · 0 评论 -
僵尸进程与孤儿进程
一、定义:什么是孤儿进程和僵尸进程僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。子进程持续转载 2013-12-21 22:02:12 · 751 阅读 · 0 评论 -
Linux下Socket编程(转载)
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程式员能够用他们来研发TCP/IP网络上的应用程式。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。假如了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的 Socket数据传输是一种特原创 2013-11-18 16:17:14 · 684 阅读 · 0 评论 -
linux系统管理基础
linux有唯一的文件系统,它所有的文件都挂在这棵文件树上。linux的文件系统:/bin:存放常用命令/boot:存放启动程序/dev:存放设备文件/etc:存放启动,关闭,配置程序与文件/home:用户工作根目录/lib:存放共享链接库/root:超级用户的工作目录/sbin:系统管理员的常用管理程序/tmp:存放临时文件/lost+found:系统出现异常时,用于保存原创 2013-11-18 16:17:25 · 789 阅读 · 0 评论 -
linux下的tty是什么
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:1.串行端口终端(/dev/ttySn)串行端口终端(Serial PortTerminal)是使用计原创 2013-11-18 16:17:34 · 1305 阅读 · 0 评论 -
linux下shell脚本
什么是shell简单地说,就是命令解析器,将用户输入的指令转换为相应的机器能够运行的程序。Bourne shell (sh)Korn shell (ksh)Bourne Again shell (bash)C shell (包括 csh and tcsh)TENEX/TOPS C shell (tcsh) shell脚本:一个包含一系列命令序列的文本文件。当运行这个脚本文件时原创 2013-11-18 16:17:36 · 877 阅读 · 0 评论 -
linux进程通信—消息队列ftok、msgg…
定义:unix早期通信机制之一的信号能够传送的信号量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列(也叫做报文队列)则克服了这些缺点。 发展:消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式。进程可以向其中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。 分类:目前主要有两种类型的消息队列:POSIX消息队列以及系原创 2013-11-18 16:16:51 · 1060 阅读 · 0 评论 -
linux文件编程-系统调用-creat()
linux中文件编程可以使用两种方法:1、linux系统调用,其依赖linux系统2、c语言库库函数,它与操作系统是独立的,在任何操作系统下,使用c语言库函数操作文件的方法都是一样的。 int creat(const char *filename, mode_t mode)filename:要创建的文件名(包含路径,缺省为当前路径)mode:创建模式creat的返回值为文件描述符,其原创 2013-11-18 16:16:27 · 1388 阅读 · 0 评论 -
linux下gcc、gdb、makefile
GCC再linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。gcc编译可以经过四个阶段:(1)预处理:c/c++源文件中,以“#”开头的命令被称为预处理命令,如包含命令“#include”,宏定义命令“#define”,条件编译命令“#if”、“#ifdef”等。预处理就是将要包含(include)的文件插入源文件中、将宏定义展开,根据条件编译命令选原创 2013-11-18 16:16:38 · 807 阅读 · 0 评论 -
linux-多线程设计pthread_create、…
创建线程:# include int pthread_create(pthread_t *tidp, const pthread_attr_t *attr,void *(*start_rtn), void *arg)tidp:创建线程时返回线程idattr:线程属性(通常为空)start_rtn:线程要执行的函数arg:start_rtn的参数返回值:创建成功就返回0,否则为非0;原创 2013-11-18 16:16:57 · 1033 阅读 · 0 评论 -
linux网络编程基础篇
linux的网络优势:linux为用户提供了完善的、强大的网络功能1、完善的内置网络。其他操作系统不包含如此紧密地和内核结合在一起的网络部分。2、linux免费提供了大量支持internet的软件,internet是在unix领域中建立并繁荣起来的,在这方面使用linux是相当方便的,用户能用linux与世界上的其他人通过internet网络进行通信。3、用户能通过一些linux命令完成原创 2013-11-18 16:17:04 · 764 阅读 · 0 评论 -
linux网络编程-TCP网络程序设计
基于TCP的服务器:1、创建一个socket、用函数socket();2、绑定IP地址、端口等信息到socket上,用函数bind();3、设置允许最大连接数,用listen();4、等待来自客户端的连接请求,用accept();5、收发数据,用send()和recv(),或者read()和write();6、关闭网络连接close()。 基于TCP的客户端:1、创建一个sock原创 2013-11-18 16:17:08 · 733 阅读 · 0 评论 -
linux-并发服务器设计
服务器模型:在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务模型有:1、循环服务器:服务器在同一个时刻只能响应一个客户端的请求2、并发服务器:服务器在同一个时刻可以响应多个客户端的请求 UDP循环服务器UDP循环服务器的实现方法:UDP服务器每次从套接字上读取一个客户端的请求->处理->然后将结果返回客户机。原创 2013-11-18 16:17:12 · 574 阅读 · 0 评论 -
linux下应用软件安装指南(转载)
一、解析Linux应用软件安装包 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。 3) dpkg包,如software-1.2.3-1.deb。它是De原创 2013-11-18 16:17:06 · 748 阅读 · 0 评论 -
linux线程互斥pthread_mutex_lock
线程同步:进行多线程编程,因为无法知道哪个线程会在什么时候对共享资源进行操作,因此让如何保护共享资源变得复杂,通过下面这些技术的使用,可以解决线程间对资源的竞争:1、互斥量Mutex2、信号灯semaphore3、条件变量conditions 为什么需要互斥量:Item *p = queue_list;Queue_list = queue_list->next;process_jo原创 2013-11-18 16:16:59 · 1189 阅读 · 0 评论 -
linx下线程与进程关系(转)
一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,原创 2013-11-18 16:17:28 · 764 阅读 · 0 评论 -
Makefile教程(很详细)
本人在学习linux下C语言编程时,感觉Makefile好难理解,于是就百度了一下,果然就搜到了这样一篇有关makefile的文章,讲的非常详细。贴出了来和大家共享!我们一起来学习Makefile吧概述————————什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professiona原创 2013-11-18 16:17:30 · 1212 阅读 · 0 评论 -
linux中argc、argv参数介绍
int main(argc, argv[])是linux与unix下的标准用法。int main()只是linux与unix的默许用法。下面通过一个例子edit.c来具体介绍argc和argv[]参数。//edit.c 编译程序:gcc -g edit.c -o edit运行程序:./edit显示结果:./edit运行程序:./edit file显示结果:./edit, fil原创 2013-11-18 16:16:23 · 1631 阅读 · 0 评论 -
linux文件编辑-库函数-fopen、frea…
库函数c库函数的文件操作独立于具体的操作系统平台。不管在DOS、windows、linux还是在vxworks中都是这些函数。 库函数的创建和打开FILE *fopen(const char *filename, const char *mode)filename:打开的文件名(包含路径,缺省为当前路径)mode:打开模式 常见的打开模式:r,rb原创 2013-11-18 16:16:34 · 972 阅读 · 0 评论 -
linux-时间编程-time、gmtime、loc…
时间类型:coordinated universal time(UTC):世界标准时间,也就是格林威治标准时间GMTcalendar time:日历时间,是用“从一个标准时间点(如:1970-1-1-0)到此时经过的秒数”来表示时间。 时间获取:# includetime _t time(time_t *tloc)功能:获取日历时间。 时间转化:struct tm *gmtim原创 2013-11-18 16:16:36 · 995 阅读 · 0 评论 -
linux下常用头文件汇总
aio.h 异步I/Oassert.h 验证程序断言 complex 复数类complex.h 复数处理cpio.h cpio归档值 ctype.h 字符类型 dirent.h 目录项,opendir(),closedir(),readdir(),readdir64()dlfcn.h 动态链接errno.h 出错码 exception 异常处理类fcntl.h 文件控制 f原创 2013-11-18 16:16:42 · 996 阅读 · 0 评论