Linux
秋刀鱼
这个作者很懒,什么都没留下…
展开
-
Linux makefile学习
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linu转载 2011-07-23 12:20:55 · 864 阅读 · 0 评论 -
ioctl函数
ioctl 函数 本函数影响由fd 参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../* void *arg */ );返回0 :成功 -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request转载 2011-07-16 23:38:01 · 925 阅读 · 0 评论 -
gcc编译选项
gcc提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration转载 2011-06-22 20:09:00 · 10020 阅读 · 0 评论 -
HP UNIX下aCC安装
我用到的aCC编译器是B9007AAEVAL_C.11.31.06.EVAL_HP-UX_B.11.31_IA_PA.depot。可以在HP官网下载到。安装步骤如下:1、将安装包放在/var 下2、swinstall -s /var/B9007AAEVAL_C.11.31.06.EVAL_HP-UX_B.11.31_IA_PA.depot3、弹出对话框,Actions--->Chang Targe原创 2011-06-19 23:46:00 · 4678 阅读 · 0 评论 -
Linux C函数之文件及目录函数
<br />link: 建立文件硬连接<br />头文件: unistd.h<br />函数定义: int link(const char *oldpath, const char *newpath);<br />说明: link()以参数newpath指定的名称来建立一个新的连转载 2011-05-24 22:22:00 · 1265 阅读 · 0 评论 -
多线程与fork
前言:exce调用并不创建新进程,所以前后的进程ID并未改变,exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段多线程程序里不准使用fork :为什么???UNIX上C++程序设计守则3准则3:多线程程序里不准使用fork在多线程程序里,在”转载 2011-08-04 00:06:01 · 9615 阅读 · 0 评论 -
Linux 多线程编程(一)
1、创建线程: 有一个比较特殊的线程, 就是主线程或者称为初始线程,它是当一个进程被创建时创建的。而其他线程则是在初始线程中调用pthread_create创建的。创建的新线程初始为Ready状态,等待处理器调度。2、执行线程: 线程被创建后,就会执行原创 2011-08-04 23:22:01 · 3540 阅读 · 0 评论 -
pthread_detach
pthread_detach 创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该调用pthread_join来等待线程运行结原创 2011-09-04 23:17:54 · 7648 阅读 · 0 评论 -
Linux 多线程编程(三)
继续昨天的线程同步,条件变量(Condition Variables)是用于线程间,通信共享数据状态改变的机制。简介条件变量的创建和销毁等待条件变量唤醒等待条件变量的线程简介 当线程互斥地访问一些共享的状态时,往往会有些线程需要等到这些状态改变后转载 2011-08-09 23:19:55 · 1462 阅读 · 0 评论 -
Linux多线程编程(二)
并行的世界,没有同步,就失去了秩序,就会乱作一团!试想,交通没有红绿灯,生产线产品装配没有一定的顺序... 结果是显而易见的。多个线程也需要同步,否则程序运行起来结果不可预测,这是我们最不能容忍的。交通的同步机制就是红绿灯,Pthread提供了互斥量(mutex)和条件变量(转载 2011-08-09 23:14:49 · 1458 阅读 · 0 评论 -
ps -aux 状态详解
运行 ps aux 的到如下信息: ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDsmmsp 3521 0.0 0.7 6556 1616 ? Ss 20:40 0:00 sendmail: Queue runner@01:00:00转载 2011-11-23 22:53:21 · 20613 阅读 · 2 评论 -
网络字节序与主机字节序
不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第一观感转载 2014-02-20 20:57:08 · 519 阅读 · 0 评论 -
socket 长连接和短连接
Socket协议的形象描述socket的 英文原义是“孔”或“插座”。在这里作为4BDS UNIX的进程通信机制,取后一种意思。socket非常类似于电话插座。以一个国家级电话网为例。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个soc转载 2014-02-20 21:03:12 · 911 阅读 · 0 评论 -
socket 阻塞和非阻塞
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回转载 2014-02-20 21:14:20 · 1174 阅读 · 0 评论 -
字节对齐
文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访转载 2014-04-01 22:56:14 · 713 阅读 · 0 评论 -
记录锁,多进程,临界区
1. 记录锁概念和功能当两个人同时编辑一个文件时,其后果将如何呢?在很多U N I X系统中,该文件的最后状态取决于写该文件的最后一个进程。但是对于有些应用程序,例如数据库,有时进程需要确保它正在单独写一个文件。为了向进程提供这种功能,较新的U N I X系统提供了记录锁机制记录锁(record locking)的功能是:一个进程正在读或修改文件的某个部分时,可以阻止其他进转载 2014-10-20 23:22:37 · 2726 阅读 · 0 评论 -
ping程序实现
大部分人用ping命令只是作为查看另一个系统的网络连接是否正常的一种简单方法。在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能的程序。 ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个。ping命令的工作原理是:向网络上的另一个主机系统发送转载 2011-07-19 23:48:20 · 2120 阅读 · 0 评论 -
浅析setsockopt
浅析:setsockopt()1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsoc原创 2011-07-27 23:35:22 · 879 阅读 · 0 评论 -
Linux Pthread_kill
pthread_kill:别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。int pthread_kill(pthread转载 2011-07-26 23:33:17 · 5210 阅读 · 0 评论 -
Linux监听子线程的函数
waitpid系统调用】 功能描述: 等待进程改变其状态。所有下面哪些调用都被用于等待子进程状态的改 变,获取状态已改变的子进程信息。状态改变可被认为是:1.子进程已终止。2.信号导致子进程停止执行。3.信号恢复子进程的执行。在子进程终止的情况 下,wait调用将允许转载 2011-07-27 00:16:36 · 2358 阅读 · 0 评论 -
Linux多线程编程和信号易疏忽的一个例子
这几天把一个网络流量采集器程序基本改好了,原来在main函数中把几个子线程启动后就睡10分钟后开始清理子线程后退出。现在想改成子线程启动后主线程进入无限睡眠,直到收到SIGTERM或SIGINT。主程序如下:其他头文件#include //信号处理所需要的头文件int main转载 2011-07-27 00:34:32 · 1746 阅读 · 0 评论 -
ifconfig命令
ifconfig命令ifconfig是linux系统最为常用的网络工具,可以用于查看网络设置,进而更改网络的参数。[root@rhel-templet ~]# ifconfigeth0 Link encap:Ethernet HWaddr 00:0C:29:DF:59转载 2011-07-19 23:33:52 · 4648 阅读 · 0 评论 -
Linux环境变量学习
1、总结背景在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。2、变量简介Linux是一个多用户的操作系统转载 2011-06-23 22:09:00 · 614 阅读 · 0 评论 -
ar 命令用法
ar 命令用途维护链接编辑器使用的索引库。语法ar [ -c ] [ -l ] [ -g | -o ] [ -s ] [ -v ] [ -C ] [ -T ] [ -z ] { -h | -p | -t | -x } [ -X {32|64|32_64}] ArchiveFile [ File ... ]ar [ -c ] [ -l ] [ -g | -o ] [转载 2011-06-23 01:04:00 · 14825 阅读 · 0 评论 -
dos2unix
Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"/r/n"转化成"/n",unixtodos把"/n"转化成"/r/n"。命原创 2011-06-09 00:29:00 · 8209 阅读 · 0 评论 -
miitool和ethtool 工具介绍
通过mii-tool和ethtool工具来调整网卡的速度、协商方式(双工)等,这样能提高网卡的效率;mii-tool 介绍有时网卡需要配置协商方式,比如10/100/1000M的网卡半双工、全双工、自动协商的配置。但大多数的网络设备是不用我们来修改协商,因为大多数网 络设置接入的转载 2011-07-20 00:29:52 · 1930 阅读 · 0 评论 -
LINUX-IPCS信息
在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。查看共享信息的内存的命令是ipcs [-m|-s|-q]。默认会列出共享内存、信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列。怎样清楚呢?清楚命令是ipcrm [-m|-s|-q] id。-m 删除共享内存,-s删除共享信号量,-q删除共享队列。下面是一个操作示例:view转载 2011-06-23 12:27:00 · 1171 阅读 · 0 评论 -
aCC 编译器编译选项
aCC是HP公司的商业C++编译器,以下是一些编译选项的用法。 1) -AA 全面支持C++(HPUX PA上编译C++时的必须选项)2) -V 查看版本3) +DD64 编译64位程序 +DD32编译32位程序,在64位系统上默认编译的是32位程序。4) +DAportable 跨版本编译5) -lpthread 支持POSIX线程6) -lrt 支持POSI原创 2011-06-21 00:41:00 · 3461 阅读 · 0 评论 -
linux下遍历目录树方法总结
<br />前几天需要实现对整个目录树的遍历,查阅了相关的一些资料。开始找到的原始的方法是使用readdir()与lstat()函数实现递归遍历,后来发现linux对于目录遍历这种最常用的操作已经提供了很完善的接口:ftw()与nftw()。下面就这两种方法具体说明一下。<br转载 2011-05-24 23:50:00 · 11346 阅读 · 0 评论 -
cc 和gcc编译器
从名字上看,老的unix系统的CC程式叫做C Compiler。但GCC这个名字按GNU的说法叫做Gnu Compiler Collection。因为gcc包含非常多编译器(C, C++, Objective-C, Ada, Fortran,and Java)。所以他们是不相同的,一个是个古老的C编译器,一个是编译器的Gnu的编译器的集合(Gcc里的C编译器比CC强大太多了,所以你没必要用CC)。转载 2011-06-22 19:59:00 · 7088 阅读 · 0 评论 -
ldconfig命令的作用
<br />ldconfig命令的作用<br />ldconfig是一个动态链接库管理命令<br />为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig<br />ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动转载 2011-04-18 23:47:00 · 639 阅读 · 0 评论 -
linux 多线程条件变量
一直对条件变量有几个疑惑,最近抽了点时间,终于搞清楚了这几个问题。以下面程序为例,进行分析。#include <pthread.h>struct msg {struct msg *m_next;/* ... more stuff here ... */};struct msg *workq;pthread_cond_t qready = PTHREAD_COND_I...原创 2019-02-27 14:12:15 · 303 阅读 · 0 评论