![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unix/Linux
julong2011
这个作者很懒,什么都没留下…
展开
-
Linux c的多线程编程实例
通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。#include <pthread.h>#include <stdio.h>#include <sys/time.h>#include <string.h>#include <unistd.h>#d...2010-09-03 10:26:29 · 320 阅读 · 0 评论 -
6)Linux程序设计入门--消息管理
前言:Linux下的进程通信(IPC)Linux下的进程通信(IPC)POSIX无名信号量System V信号量System V消息队列System V共享内存1。POSIX无名信号量 如果你学习过操作系统,那么肯定熟悉PV操作了.PV操作是原子操作.也就是操作是不可以中断的,在一定的时间内,只能够有一个进程的代码在CPU上面执行.在系统当中,有时候为了顺利的...原创 2010-09-26 13:56:41 · 75 阅读 · 0 评论 -
7)Linux程序设计入门--线程操作
前言:Linux下线程的创建介绍在Linux下线程的创建和基本的使用. Linux下的线程是一个非常复杂的问题,由于我对线程的学习不时很好,我在这里只是简单的介绍线程的创建和基本的使用,关于线程的高级使用(如线程的属性,线程的互斥,线程的同步等等问题)可以参考我后面给出的资料. 现在关于线程的资料在网络上可以找到许多英文资料,后面我罗列了许多链接,对线程的高级属性感兴趣的...原创 2010-09-26 13:58:43 · 68 阅读 · 0 评论 -
8)Linux程序设计入门--网络编程 (上)
Linux系统的一个主要特点是他的网络功能非常强大。随着网络的日益普及,基于网络的应用也将越来越多。 在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处于不败之地,学习Linux的网络编程,可以让我们真正的体会到网络的魅力。 想成为一位真正的hacker,必须掌握网络编程技术。现在书店里面已经有了许多关于Linux网络编程方面的书籍,网络上也有了许多关于网络编...原创 2010-09-26 14:07:55 · 104 阅读 · 0 评论 -
8)Linux程序设计入门--网络编程(下)
网络编程(7)7. TCP/IP协议你也许听说过TCP/IP协议,那么你知道到底什么是TCP,什么是IP吗?在这一章里面,我们一起来学习这个目前网络上用最广泛的协议.7.1 网络传输分层如果你考过计算机等级考试,那么你就应该已经知道了网络传输分层这个概念.在网络上,人们为了传输数据时的方便,把网络的传输分为7个层次.分别是:应用层,表示层,会话层,传输层,网络层,数...原创 2010-09-26 14:12:16 · 80 阅读 · 0 评论 -
linux IPC-消息队列
几乎所有的 Linux 发行版本都包含 ipcs 命令,该命令可以提供当前加载到系统上的IPC 资源信息。通过 ipcs 可以确定系统的当前 IPC 限制,还可以检查系统当前使用的上述三类IPC资源的状态。例如,假若应用程序启动失败,可以检查系统上的 IPC使用情况来判断是否已超出了某个IPC限制。为了确定系统的IPC资源状态,可以在 root用户权限下执行带有-u 选项的 ip...原创 2010-09-27 14:02:30 · 70 阅读 · 0 评论 -
Linux中实现30分钟无操作自动关机
这是一个自动关机的小程序。该程序可以守护进程的方式运行,当用户在一定时间(比如30分钟)没有鼠标和键盘操作后就会自动关机。。 由于需要同时监听鼠标和键盘操作,所以需要采用多线程的方式来实现。其中两个线程分别监视鼠标和键盘,一旦检测到相应动作(鼠标点击和移动、击键等),全局时间戳stamp(time_t)就会被设成当前时间。主线程每隔一定时间(比如1秒)检查stamp,若当前时间值(time...原创 2010-09-27 15:42:39 · 1078 阅读 · 0 评论 -
Unix/Linux环境下创建和使用静/动态库
库的作用 大体上库的存在,有两方面的原因,一是代码的复用,二是声明和实现的分离。将功能相近的使用模块封装成库,使代码的复用、管理和分发变得简单了许多,例如著名的开源图形库ncurses,你可以自行编译,更可以直接使用已经编译好的现成的库文件。另外,由于库是二进制文件,某种意义上讲,将功能的实现部分隐藏了起来,这就为商业代码的保护提供了一种方式。 库文件按照链接方式和时机,可以分为动态...原创 2010-09-27 15:51:45 · 83 阅读 · 0 评论 -
系统信息相关命令
系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# l...原创 2010-09-27 15:55:32 · 82 阅读 · 0 评论 -
Linux下线程同步对象——互斥量
进程是Linux资源分配的对象,Linux会为进程分配虚拟内存(4G)和文件句柄等资源,是一个静态的概念。线程是CPU调度的对象,是一个动态的概念。一个进程之中至少包含有一个或者多个线程。这些线程共享该进程空间的内存和文件句柄资源,多个线程竞争地获得这些资源。为了防止多个线程访问资源的不一致性,多线程编程一个很重要的任务就是控制好线程同步。本文简单介绍一下Linux的同步对象和使用时的一些注...原创 2010-10-09 10:47:32 · 83 阅读 · 0 评论 -
linux类原版电子书589本
ftp://202.96.64.144/pub/books/(ebook - chm) - Misc - Debian The Perfect Setup.chmftp://202.96.64.144/pub/books/(ebook - English) Advanced Linux Programming.pdfftp://202.96.64.144/pub/books/(ebook - HT...原创 2010-10-27 16:13:48 · 743 阅读 · 0 评论 -
iphdr与tcphdr详解(skb_header_pointer函数分析)
linux 2.6.26 下获取tcp信息: tcph=skb_header_pointer(skb, protoff, sizeof(tcph), &tcph); //skb_header_pointer是个库函数skb_header_pointer函数该函数本身很简单,定义如下:/* #include <linux/skbuff.h>*/static inline ...原创 2011-03-01 12:25:04 · 1830 阅读 · 0 评论 -
Linux内核构造数据包并发送(Netfilter方式)
一、构造数据包简析 这里并不详细介绍如何在内核中构造数据包,下文如有需要会在适当的位置进行分析。这里简单的分析讲一下内核态基于Netfilter框架构造数据包的方式。 内核中可以用到的构造数据包的方式,个人认为可以分为两种。 其一,我们直接用alloc_skb申请一个skb结构体,然后根据实际的应用填充不同的成员,或者基于当前数据包的skb,调用skb_copy_expand()函数...原创 2011-03-03 12:21:00 · 257 阅读 · 0 评论 -
Linux内核构造数据包并发送(二)(dev_queue_xmit方式)
linux内核太构造数据包的第二种方式就是直接调用dev_queue_xmit函数,将构造完毕的数据包直接发送到网卡驱动。从NF框架来看,该函数的调用是在 POSTROUTING点之后了,也可以理解为直接通过调用二层的发送函数,将三层构造的数据包发送出去。该函数实际上会调用 skb->dev->hard_start_xmit,即对应网卡的驱动函数,将数据包直接发送的出去。 ...原创 2011-03-03 12:24:30 · 594 阅读 · 0 评论 -
inet_pton和inet_ntop函数
Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。inet_pton函数原型如下[将“点分十进制” -> “整数”]#include <sys/types.h>#include <sys/socket.h>#include <...原创 2010-11-28 15:03:42 · 97 阅读 · 0 评论 -
5)Linux程序设计入门--信号处理
Linux下的信号事件前言:这一章我们讨论一下Linux下的信号处理函数.Linux下的信号处理函数:信号的产生信号的处理其它信号函数一个实例1。信号的产生Linux下的信号可以类比于DOS下的INT或者是Windows下的事件.在有一个信号发生时候相信的信号就会发送给相应的进程.在Linux下的信号有以下几个. 我们使用 kill -l命令可以得到以...原创 2010-09-26 13:54:02 · 74 阅读 · 0 评论 -
4)程序设计入门--时间概念
前言:Linux下的时间概念这一章我们学习Linux的时间表示和计算函数时间的表示时间的测量计时器的使用1。时间表示 在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令的输出结果.这个时候我们可以使用下面两个函数#include <time.h>; time_t time(time_t *tloc);char *ctime(...原创 2010-09-26 13:50:51 · 89 阅读 · 0 评论 -
3)Linux程序设计入门--文件操作
Linux下文件的操作前言:我们在这一节将要讨论linux下文件操作的各个函数.文件的创建和读写文件的各个属性目录文件的操作管道文件--------------------------------------------------------------------------------1。文件的创建和读写我假设你已经知道了标准级的文件操作的各个函...原创 2010-09-26 13:48:12 · 75 阅读 · 0 评论 -
gcc和g++的区别
gcc和g++都是GNU(组织)的一个编译器。 误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,...原创 2010-09-04 08:16:41 · 69 阅读 · 0 评论 -
对前一个Linux多线程编程实例的修改
#include <pthread.h>#include <stdio.h>#include <sys/time.h>#include <string.h>#include <unistd.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;int...原创 2010-09-04 08:57:59 · 91 阅读 · 0 评论 -
Linux下的sniffer工具--Tcpdump的安装和使用
在如今众多的黑客技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有...原创 2010-09-04 20:35:54 · 301 阅读 · 0 评论 -
error:expected '=',',',';','asm'or'_attribute_'
今天在Linux上调一个存包队列,当用gcc编译时,出现error:expected '=',',',';','asm'or'_attribute_'等错误,这个错误是出现在两个函数上,这两个函数的返回类型是bool,当我把bool类型改为void,再进行编译时,错误就没有了,今天先把这个记下,以备以后需要时用到!...2010-09-16 09:43:36 · 923 阅读 · 0 评论 -
linux device driver
http://www.gelato.unsw.edu.au/~dsw/public-files/kernel-docs/kernel-api/index.htmlhttp://lwn.net/Kernel/LDD3/http://blog.chinaunix.net/u1/58901/showart_1934008.htmlhttp://www.deansys.com/doc/ldd3/ch06....原创 2010-09-16 10:44:01 · 100 阅读 · 0 评论 -
Linux下C语言的多线程编程学习
Linux下C语言的多线程编程学习一、首先,简单了解一下多线程,从耳熟能详的fork()、pthread中理点头绪出来,然后自己写一个简单的来增加一下信心。1、Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连 接时需要使用库libpthread.a。因此,后面的编译必须在选项中加入 -lpthread 选项,...原创 2010-09-17 10:30:10 · 194 阅读 · 0 评论 -
进程间通信IPC
1.fork、exec和exit对IPC对象的影响IPC类型forkexec_exit 管道和FIFO子进程取得父进程的所有打开着的描述字的拷贝所有打开的描述字继续打开着,除非已设置描述字的FD_CLOEXEC位关闭所有打开着的描述字,最后一个关闭时删除管道或FIFO中残留的所有数据Posix消息队列子进程取得父进...原创 2010-09-17 10:35:35 · 90 阅读 · 0 评论 -
Daemon是怎样练成的
守护进程守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、Web服务http等。同时,守护进程完成许多系统任务。比如,作业规划进程crond、打印进程lqd等。这里主要说明守护进程的进程结构,以及如何编写守护进程程序...原创 2010-09-17 10:39:48 · 110 阅读 · 0 评论 -
进程的创建
在 UNIX 系统中,用户创建一个新进程的唯一方法就是调用系统调用 fork。调 用 fork 的进程称为父进程,而新创建的进程叫做子进程。系统 调用的语法格式: pid = fork();在从系统调用 fork 中返回时,两个进程除了返回值 pid 不同外,具有 完全一样的用户级上下文。在子进程中,pid 的值为零。在系统启动时由核心内 部地创建的进程0是唯一不通过系统调用 fork 而创...原创 2010-09-17 10:46:39 · 158 阅读 · 0 评论 -
Linux环境进程间通信之:消息队列
程间通讯(IPC)是学习linux编程中非常重要的一个环节,IPC有比较多的方式:管道(半双工)、FIFOs(命令管道)、流管道(全双工)、命令流管道、消息队列、信号量、共享存储、套接口、流。下面来介绍平常应用比较多的消息队列。消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号...原创 2010-09-25 15:35:57 · 82 阅读 · 0 评论 -
Linux消息队列长度修改
打开/etc/sysctl.conf修改kernel.msgmni=1000kernel.msgmax=81920kernel.msgmnb=163840msgmni为MSGMNI,即系统的消息队列数目。平台每个DTA需要使用3个消息队列,即最大DTA数为1000/3。该参数应该比平台最大队列个数参数配置大。msgmax为MSGMAX,即一个消息的字节大小。目前扩展值为8k,平台一个交易消息为4个...原创 2010-09-26 08:11:00 · 1584 阅读 · 0 评论 -
Linux用户态和内核态
1. 用户态和内核态的概念区别究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子void testfork(){if(0 = = fork()){printf(“create new process success!\n...原创 2010-09-26 08:17:37 · 983 阅读 · 1 评论 -
1)Linux程序设计入门--基础知识
Linux下C语言编程基础知识前言:这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容:源程序编译Makefile的编写程序库的链接程序的调试头文件和系统求助----------------------------------------------------------------------------...原创 2010-09-26 11:02:05 · 89 阅读 · 0 评论 -
2)Linux程序设计入门--进程介绍
前言:这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到:进程的概念进程的身份进程的创建守护进程的创建--------------------------------------------------------------------------------1。进程的概念Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系...原创 2010-09-26 11:05:52 · 67 阅读 · 0 评论 -
unp.h文件内容
/* Our own header. Tabs are set for 4 spaces, not 8 */ #ifndef __unp_h #define __unp_h #include "../config.h" /* configuration options for current OS */ ...原创 2010-11-28 15:33:01 · 323 阅读 · 0 评论