linux
文章平均质量分 61
我们一直在努力
这个作者很懒,什么都没留下…
展开
-
Address
牛人 BOLGhttp://blog.chinaunix.net/space.php?uid=20543672 Tekkaman Ninja的bolg地址 http://blog.csdn.net/feixiaoxing?viewmode=contents linux下c编程好的参考地址http://blog.csdn.net/fudan_abc?viewmode=content原创 2011-07-06 19:11:01 · 867 阅读 · 0 评论 -
pthread_create用法
今天开始学习linux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。#include int pthread_create(pthread_t *restrict tidp,转载 2011-08-07 00:13:27 · 911 阅读 · 0 评论 -
线程属性设置
一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1.转载 2011-08-06 02:43:13 · 1206 阅读 · 0 评论 -
fd_set的用法
select()机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是socket句柄,还是其他文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成,当调用select()时,由内核根据IO状态修改fe_set的内容,由此来通知执行了select()的进程哪一socket或文件可读。 多端口复用函数select转载 2011-06-17 16:11:00 · 1139 阅读 · 0 评论 -
malloc分配0字节的空间的秘密
面试的时候遇到这么一道题,malloc分配0个字节过后的内存情况?我回来用gcc测试了一下,以供参考: 1 #include 2 #include 3 int main() 4 { 5 int *p = NULL; 6原创 2011-08-04 21:38:49 · 5548 阅读 · 4 评论 -
Linux最大线程数及最大进程数
查看最大线程数:cat /proc/sys/kernel/threads-maxulimitUser limits - limit the use of system-wide resources.Syntax ulimit [-ac转载 2011-08-04 21:40:15 · 37570 阅读 · 0 评论 -
巧妙实现之c语言计算文件大小
今天面试,面试官问我c语言里面有木有函数计算一个文件的大小,是哪一个?我纠结了一小会儿,我想有吗?当时也没回答出来,回来查才知道,用的是用lseek和ftell结合使用实现的。The ftell() function returns the current positio原创 2011-08-03 21:36:52 · 4920 阅读 · 0 评论 -
inet_pton inet_ntop 注意点使用
#include //bzero memset#include //struct in_addr#include //AF_INET#include int main(int argc, char **argv) { char str[]="172.1转载 2011-07-30 09:38:35 · 8168 阅读 · 0 评论 -
setsockopt参数、用法详解
int setsockopt( SOCKET s, int level, int optname, const char* optval, int optlen);s(套接字): 指向一个打开的套接口描述字 level:(级别): 指定选项代码的类型。 SOL_SOC转载 2011-07-29 10:27:13 · 997 阅读 · 0 评论 -
无聊之socklen_t
在网络编程中看到socklen_t虽然这不是最重要的,而且都可以猜出来是什么东西,但是还是放不下,就这样搜索了一下,这个方法挺有用的cd /usr/include && grep -r socklen_t * | grep typedef这样就出来了。原创 2011-07-29 09:39:01 · 14123 阅读 · 0 评论 -
socket编程原理
socket编程原理 1 问题的引入 UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文转载 2011-07-28 09:59:15 · 692 阅读 · 0 评论 -
网络编程socket之listen函数
listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。listen函数在一般在调用bind之后-调用accept之前调用,它的函转载 2011-08-07 16:23:31 · 4481 阅读 · 2 评论 -
我们一直都在努力
半个月的上班体验,没怎么上网玩玩的我的blog,本来计划把不懂的、不懂到懂了的都记录下来,养成一个好的习惯。但是这段时间每天就坐在办公司研究老大给的上万行代码,或许是太投入了、也许是没网,但我知道一旦进入工作就会忘记或者把之前的计划都打乱了,因为上班有太多的或许、可能。我们做软件原创 2011-09-11 23:46:04 · 1455 阅读 · 3 评论 -
同步、异步、阻塞和非阻塞的概念
同步、异步、阻塞和非阻塞的概念同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方翻译 2011-08-23 07:47:47 · 1119 阅读 · 0 评论 -
安装Ubuntu TFTP 、NFS、SAMBA服务小记
由于需要,所以重新安装虚拟机以及装服务,这是我安装的过程 http://nkevin.blog.163.com/blog/static/4481948120081026115140108/ 安装Virtualbox步骤http://nkevin.blog.163.com/blog/static/44819481200932474453592/ 安装linux步骤安装系统我是参照上面的原创 2011-12-01 15:02:22 · 1782 阅读 · 0 评论 -
ubuntu 窗口不能移动
一直以来,我的ubuntu的终端一打开都再左上角,没法移动,以前没管它,现在觉得很别扭。而且当打开多个窗口的时候就会覆盖之前的窗口,只有等之后的关闭后才能操作之前的窗口,很难参。在新浪一个大哥的blog上面看到解决办法,记录下来,很有用的。《在ubuntu下标题栏消失,窗口不能移动如果在Xwindows里能打开终端,直接在终端输入以下命令:sudo metacity --repla原创 2011-11-14 10:37:43 · 10487 阅读 · 1 评论 -
windows能ping通vmware && vmware 不能ping通windows
linux可以ping通windows,但是windows整死都ping不通linux,把我郁闷了半天,而且虚拟机-->设置-->网络适配器里面的连接选得是桥接(用和主机同一张网卡),虚拟机可以上网。才记起,windows主机的防火墙和360防火墙都还快乐的运行着,那我肯定看不惯它那么高兴啊,全部封杀,想都没想。结果,我也可以快乐的工作了。这时,我才感受到,我的快乐是建立在别人的痛苦之上的,嘿原创 2011-11-13 12:46:31 · 2299 阅读 · 0 评论 -
隐式声明与内建函数不兼容问题
其实在很多程序中都会出现类似的情况,因此为了方便,我们在编写程序时都把常用的头文件加上,或者将常用的头文件和函数编写到一个自定义的头文件中。警告:隐式声明与内建函数 ‘memset’ 不兼容 ---------->man memsetMEMSET(3) Linux Programmer’s Manual MEMSET原创 2011-11-13 00:14:06 · 2478 阅读 · 0 评论 -
Linux下动态库的生成及链接方法
最近在看《C专家编程》,看到第5章-对链接的思考,正好作为参考,对Linux下动态库的生成及链接方法作一下总结。Linux下动态库文件的扩展名为".so"(Shared Object)。按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号)。这样,线程函数库被称作libthread.so。静态库的文件名形式是libname.a。共享archive的文件名形式是li翻译 2011-11-12 23:02:01 · 1142 阅读 · 2 评论 -
ncurses-devel 安装解决方案小记
新装了Ubuntu11.10,虚拟机用的Oracle VM VirtualBox。为了安装飞思卡尔的LTIB,中间会出现很多没有安装的东西,就用apt-get去安装,但是有一半(大约六个)没法之间安装,所以只有下载包安装,到最后只剩下两个最难惨的包,一个是ncurses-devel ,一个是glibc-devel,我在网上看到“ubuntu 下 编译内核 make menuconfig 时原创 2011-12-02 23:11:56 · 19392 阅读 · 1 评论 -
用mount命令挂载镜像文件小记
第一次把镜像文件放到linux下面去安装,但是很迷茫,我用samba把镜像文件放到home目录下,但是没有挂载,网上好多都讲解的从光盘挂载。不过无意间发现http://www.linuxsir.org/bbs/showthread.php?t=26463 ,学而时习之。方法一:我首先把/home/xxxx.iso用samba服务放到home下,用下面这条命令挂载,结果和从光盘挂载的一样。原创 2011-12-01 15:11:30 · 1839 阅读 · 1 评论 -
Ubuntu源使用总结
最近换工作,第一次接触到Ubuntu,由于使用的Ubuntu上面没有安装ssh服务。所以我开始动手安装openssh-server服务,第一次我是csdn上面下载了一篇手把手教我安装ssh服务,里面包括三个包,第一个我不知道,第二三个包是ssl以及ssh安装包。在Usr/lib下安装的,第一次安装成功了,我很高兴啊,既然这么顺利。第一天就这么高兴的使用了,但是后来就没打开过了,/etc/init.原创 2011-11-23 23:06:19 · 2970 阅读 · 0 评论 -
Linux网络管理员面试题
一.填空题:(加粗的文字为该题的答案) 1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。 4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。 5. 链接分为: 硬链接 和 符号链接 。转载 2011-10-30 14:44:41 · 5011 阅读 · 0 评论 -
回调函数的理解
以前只是了解了回调函数,但是实际上没有用到过的,这段时间做一个动态库,顺便加深了对它的理解。下面的理论知识摘自http://www.cppblog.com/twzheng/archive/2007/05/21/24542.html回调函数(Callback Func原创 2011-09-28 10:36:23 · 1157 阅读 · 0 评论 -
writeb(), writew(), writel() 宏函数
驱动按键疑惑#include void writeb (unsigned char data, unsigned short addr)void writew (unsigned char data, unsigned short addr)void writel (unsign原创 2011-07-26 20:57:56 · 5932 阅读 · 1 评论 -
TFTP协议详解
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。很多设备升级内核都是通过tftp协议上传的,因为tftp实现非常转载 2011-07-15 23:11:03 · 10533 阅读 · 0 评论 -
网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
转载请注明来源:http://hi.baidu.com/phpsinet_aton,inet_addr和inet_ntoa在点分十进制数串(如,“192.168.1.10")与他的32位网络字节二进制值之前转换IPV4地址,有2个比较新的函数inet_pton和inet_ntop,这2个对IPV4和IPV6地址都能处理 #include #include转载 2011-06-24 21:55:00 · 635 阅读 · 0 评论 -
in_addr结构(sin_addr存储IP地址,使用in_addr这个数据结构)
in_addr结构:The in_addr structure represents an IPv4 Internet address.typedef struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2;转载 2011-06-25 00:51:00 · 7561 阅读 · 0 评论 -
Linux下 fcntl 函数用法说明
Linux下 fcntl 函数用法说明 功能描述:根据文件描述词来操作文件的特性。 文件控制函数 fcntl -- file controlLIBRARY Standard C Library (libc, -lc)SYNOPSIS #include ; int fcntl(int fd, int cmd);转载 2011-06-19 13:57:00 · 621 阅读 · 0 评论 -
如何判断CPU是大端还是小端
一、如何判断CPU是大端还是小端?明白大端和小端的区别,实现起来就非常简单:#include int main(){ union ut{ short s; char c[2]; }u; if(sizeof(short) == 2) { u.s = 0x0102; if(u.c[0] == 1 && u.c[1] == 2) { printf("big enida转载 2011-06-19 14:49:00 · 1243 阅读 · 0 评论 -
epoll机制
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明: #define __FD转载 2011-06-18 01:36:00 · 1050 阅读 · 0 评论 -
struct sockaddr_in描述(转)
头文件:netinet/in.hstruct sockaddr {unsigned short sa_family; char sa_data[14]; };sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字节协议地址。此数据结构用做bind、connect、recvfrom、se转载 2011-06-16 23:52:00 · 859 阅读 · 0 评论 -
写时拷贝机制(copy on write)(转自搜狐达人空间的笔记)
Linux中内存的管理和分配Linux的页目录表和页表是在程序head.s中设置的.head.s程序在物理地址0处存放了一个页目录表,紧随其后的是4个页表.page.s程序用于实现页异常中断处理过程,其中缺页和页写保护引起的中断分别调用memory.c的do_no_page()和do_wp_page()函数进行处理.do_no_page()会把需要的页面从块设备中取到内存指定位置处.在共享转载 2011-06-08 16:01:00 · 7740 阅读 · 1 评论 -
差集运算
集合中的新运算——差集浙江 曾经集合中的差集在中学课本中虽然没有出现,但在能力立意的高考中频频出现新定义的“差集”,下面加以介绍.一、定义定义:一般地,设A,B是两个集合,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差),记作A-B(或A/B),即A-B={x|x∈A,且x B}(或A/B={x|x∈A,且x B}.二、与补集异同⑴ 在转载 2011-06-11 00:22:00 · 8751 阅读 · 0 评论 -
关于find命令
总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhyfly兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读;目录版权声明前言:关于find命令一、find 命令格式1、find命令的一般形式为;2、find命令的参数;3、find命令选项;4、转载 2011-06-06 21:29:00 · 610 阅读 · 0 评论 -
原始套接字 IP_HDRINCL
原始套接字可以访问ICMP和ICMP等协议包,可以读写内核不处理的IP数据包。可以创建自定义的IP数据包首部。一句话,使用原始套接字可以 编写基于IP协议的通讯程序。 1.创建原始套接字具体格式如下:int sockfd;sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP);第一个参数:协议族 AF_INET 代表TCP/IP协议第二个参数:SO转载 2011-06-25 01:29:00 · 26717 阅读 · 0 评论 -
setuid,setgid,stickybit的三个权限的详细说明
一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组. 如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置. setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行转载 2011-06-25 01:46:00 · 759 阅读 · 0 评论 -
gethostbyname用法
使用这个东西,首先要包含2个头文件:#include #include struct hostent *gethostbyname(const char *name);这个函数的传入值是域名或者主机名,例如"www.google.com","wpc"等等。传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。struct hostent { char *h_name转载 2011-06-25 00:27:00 · 674 阅读 · 0 评论 -
嵌入式调试方法——printf和fprintf
除了人工的分析之外,最简单最直接的调试方法要算printf了。不过,我们这里推荐使用的并不是初学C语言时使用的函数int printf(const char *format, ...),而是稍微复杂一点的fprintf()函数,因为它更方便我们之后重定向错误输出信息到指定的设备。转载 2011-07-24 12:10:15 · 6201 阅读 · 0 评论 -
通过编程方式获取backtrace(函数调用栈)(接上篇core dump调试解释)
在用GDB调试器时可以查看所谓的Backtrace,它包含一系列的函数调用信息,用命令backtrace或bt可以在GDB中查看函数调用栈的信 息。有些场合没法使用GDB时,则可以用glibc库函数中的一些相关函数来得到backtrace的信息(在头文件execinfo.h中):转载 2011-07-22 22:47:42 · 2372 阅读 · 0 评论