自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 Linux select函数(二)

 Part 2:select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成, 当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执 行了select()的进程哪一Socket或文件可读,下面具体解释:

2008-03-18 15:43:00 1727 1

转载 linux下的Select函数(一)

 part1:Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻

2008-03-18 14:59:00 2129

原创 Socket 同步与异步

.所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。        异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。        并不是说谁好谁不好,只是同步的机制不适合在正式应用

2008-03-18 11:33:00 997

原创 socket 网络编程recv()函数错误

    LINux下网络编程,采用非阻塞模式,调用recv函数,系统出错代码:Resource temporarily unavailable。由此查资料:  1、阻塞模式和非阻塞模式的区别     阻塞模式没有消息,服务器是多线程的,客户机为了不影响性能,也要编成多线程的。     非阻塞模式有消息通知你读写、连接等,但服务器是单线程的

2008-03-14 15:14:00 1606

原创 LInux C语言错误 two or more data types in declaration of `main'

 编译出现错误,一般是 在其前面的代码中,缺少标点符号“;",或者是头文件中,缺少。

2008-03-14 10:19:00 6805

原创 Linux 多线程通信

 摘自资料(linux 与Windows不同)     线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用mutex。可以参考一些比较新的UNIX/Linux编程的书,都会提到Posix线程编程,比如《UNIX环境高级编程(第二版)》、《UNIX系统编程》等等。 linux的消息属于IPC,也就是进程间通

2008-03-13 11:01:00 49919

原创 《Linux命令、编辑器与shell编程》第三章(自己翻译)

 一、特殊字符    1、 / 反斜线符号:若有多个特殊符号一起,则引用反斜线字符加以隔开。     2、单引号 “ ”:主要是为了封装 “********”,也可以引用其他的常规字符与特殊字符

2008-03-11 17:22:00 1243

原创 main 函数参数

main(int argc, char *argv[])argc中储存了main函数的参数的个数,argv是个参数字符串,argv[0]是程序本身,argv[1]是第一个参数,argv[2]是第二个参数,以此类推...因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为a

2008-03-07 10:42:00 632

原创 GNU make 学习笔记(三)

 今天又看了一遍“连接库的搜寻目录”,发现有点明白了。就是说库文件的实际名字都是以lib+name的形式出现,在makefile文件中,使用-|name代替lib+name,进行搜索。是这个意思吧?假想目标使用假想目标有两个原因:避免和具有相同名称的文件冲突和改善性能。当要使用假象目标时,最好明确指出,以避免不必要的麻烦。使用.PHONY目标格式将该目标具体的声明为一个假想目标:.PHONY :

2008-01-23 10:58:00 1204

原创 GNU make 学习笔记(二)、

 目录搜寻过程Make决定对通过目录搜寻找到的路径保存或废弃所依据的算法如下:1、如果一个目标文件在makefile文件所在的目录下不存在,则将会执行目录搜寻。2、如果目录搜寻成功,则路径和所得到的文件暂时作为目标文件储存。3、所有该目标的依赖用相同的方法考察。4、把依赖处理完成后,该目标可能需要或不需要重新创建:1、如果该目标不需要重建,目录搜寻时所得到的文件的路径用作该目标所有依赖的路径,

2008-01-23 10:57:00 673

原创 GNU make 学习笔记(一)

   目标(target)通常是要产生的文件的名称,目标是可执行文件或OBJ文件。目标也可是一个执行的动作名称,诸如‘clean’。依赖是用来输入从而产生目标的文件,一个目标经常有几个依赖。命令是Make执行的动作,一个规则可以含有几个命令,每个命令占一行。注意:每个命令行前面必须是一个Tab字符,即命令行第一个字符是Tab。这是不小心容易出错的地方。通常,如果一个依赖

2008-01-22 15:53:00 954

转载 GCC错误解析(转载)

 文章来自与http://www.linuxpk.com/1009.htmlAmbiguous operators need parentheses  不明确的运算需要用括号括起  Ambiguous symbol xxx  不明确的符号  Argument list syntax error  参数表语法错误  Array bounds missing  丢失数组界限符  Array s

2008-01-18 09:38:00 1848

原创 GCC 错误提示

 我采用从共享库中载入函数的列子:库中的两个函数项标准输出显示字符串,第一个函数为sayhell,显示他内部声明的串:#include void sayhello(){ printf("hello from a loaded function/n");}第二个函数saysomething 需要传入字符串作参数:#include void saysomething(char *strin

2008-01-17 17:03:00 1058

原创 GCC编译文件步骤

 利用ultraEdit的编译环境:比如:建立hello.c文件,#include int main(void){ printf("hello, world!/r/n"); return 0;} 第一步,在shell环境下,touch命令建立一个文件,         如:touch  hello.c 第二步:确定一下linux系统的FTP服务是否开启,必须在Root环境下

2008-01-15 16:51:00 3074

原创 Linux下的GCC (GNU C Compiler)

     Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。 .c为后缀的文件,C语言源代码文件; .a为后缀的文件,是由目

2008-01-15 15:28:00 3542

原创 shell 组合键

      1、ctrl + s ,冻结shell命令;ctrl+q,恢复命令; 

2008-01-15 11:33:00 870

原创 Linux 文件路径(命令)

   绝对路径 和相对路径shell命令:      cd /home :前面带有:"/"是绝对路径,直接进入home目录下;      cd .. :进入上一级目录;     cd - :返回上次目录;     pwd :显示当前目录;     cd~ : 代表当前用户目录,也就是/home/(用户名);     cd (目录名):相对路径,    ls :了解当

2008-01-14 17:30:00 1067

原创 LInux与Windows

  学习过程中,碰到的不同,陆续会加入: 1、Windows是系统挂载在分区上,而linux是分区挂载在系统上。 

2008-01-14 16:50:00 688 1

原创 Linux初学者

     最近开始学习Linux下的编程,呵呵,以前学习VC时,没有做笔记,决定从今天开始做学习笔记,希望光临寒舍的朋友,专家们,能够不吝赐教,小女子在这先行谢过!

2008-01-14 15:47:00 600 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除