易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : linux

linux下实现多线程同步(一)

参考资料:http://baike.baidu.com/view/400319.htm
 Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要 使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特 有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查看有关文档说明。下面我们展示一个最简单的多线程程序 example1.c
 #include <stdio.h>
#include <pthread.h>
#include<sys/types.h>
void thread(void){
int i;
for(i=0;i<3;i++)
printf("This is a pthread.\n");
}
int main(void){
pthread_t id;
int i,ret;
ret = pthread_create(&id,NULL,(void*)thread,NULL);
if(ret!=0){
printf ("Create pthread error!\n");
// exit (1);
}
for(i=0;i<3;i++)
printf("This is the main process.\n");
pthread_join(id,NULL);
return (0);
}
       我们编译此程序:
  gcc example1.c -lpthread -o example1
      ......

linux 几种IPC例子总结

1.管道
1.1普通管道
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
 
int main()
{
       int pipe_fd[2];
       pid_t pid;
       char buf_r[100];
       char *p_wbuf;
       int r_num;
 
       memset(buf_r, 0, sizeof(buf_r));
       if(pipe(pipe_fd) < 0)
       {
              printf("pipe create error!\n");
              return -1;
       }
 
       if((pid = fork()) == 0)
       {
    &n ......

Linux下c程序开发笔记

 第一章
1.
解释性语言:shell  javascript python  编程人员不需要经过编译 连接的过程,可以在特定环境下直接执行的语言  自动编译连接。开发效率高,但运行效率低。
编译型语言:java c c++,需要经过编程人员经过编译和连接产生可执行程序的语言。运行效率高。
2.
数据
数据结构:数据之间的一种或多种关系。密切相关的是数据的类型和数据的存放。
程序设计:编写程序的过程。
软件:程序和文档。
3.
c语言是结构化的语言
就是说:整个程序是用函数串联起来实现的。功能分解,自顶向下,逐个分解。
第二章
1.
开发环境
编辑器 vi
编译器 gcc
调试器 gdb
函数库 glibc
系统头文件 glibc_header
2.
开发图形界面 图形库
gnome   一般是用c
kde     一般使用c++
3.
IDE 集成开发环境
kylix 号称linux下的dephi
kdevelop
RHIDE  类似与turbo c++
4.gcc
-o  指定可执行文件名
-c 只输出编译结果 不链接,不生成可执行文件
-g 表示在编译时提供以后进行调试的信息
5.glibc 提供系统调用和基本函数的c库
两种安装方式
安装成测试用的函数库
安装成主要c函数库(默认)
几个附 ......

Linux下c程序开发笔记

 第一章
1.
解释性语言:shell  javascript python  编程人员不需要经过编译 连接的过程,可以在特定环境下直接执行的语言  自动编译连接。开发效率高,但运行效率低。
编译型语言:java c c++,需要经过编程人员经过编译和连接产生可执行程序的语言。运行效率高。
2.
数据
数据结构:数据之间的一种或多种关系。密切相关的是数据的类型和数据的存放。
程序设计:编写程序的过程。
软件:程序和文档。
3.
c语言是结构化的语言
就是说:整个程序是用函数串联起来实现的。功能分解,自顶向下,逐个分解。
第二章
1.
开发环境
编辑器 vi
编译器 gcc
调试器 gdb
函数库 glibc
系统头文件 glibc_header
2.
开发图形界面 图形库
gnome   一般是用c
kde     一般使用c++
3.
IDE 集成开发环境
kylix 号称linux下的dephi
kdevelop
RHIDE  类似与turbo c++
4.gcc
-o  指定可执行文件名
-c 只输出编译结果 不链接,不生成可执行文件
-g 表示在编译时提供以后进行调试的信息
5.glibc 提供系统调用和基本函数的c库
两种安装方式
安装成测试用的函数库
安装成主要c函数库(默认)
几个附 ......

联想在又走回Linux的老路?

 
尽管不愿意过分声张,但联想确实在重回Linux的老路。11月12日,高通CEO Paul Jacobs透露了联想一款基于ARM架构
Snapdragon处理器的智能本产品,这种产品的定位介于智能手机与上网本之间。Jacobs还宣称这款基于Linux的智能本将于明年1月份召开的
CES计算机电子展会上正式露面,而联想随后也对这则消息进行了确认,不过他们并不愿意透露更多有关的产品细节。
 
不过据高通方面传来的信息,这款智能本将以上网本的外形和内部功能设置为基础,并加入3G/GPS等功能。较高规格的产品将采用1GHz
Snapdragon处理器,并支持720p准高清视频播放功能,并具备GPS定位功能,电池续航能力则可达8-10小时。另外产品还支持
AT&T的3G无线网络,802.11个/n
WiFi。产品将由AT&T公司进行销售(很可能会采取绑定3G套餐的方式供货)。但AT&T对此则三缄其口。
据Jacobs展示的这款机型的Linux画面显示,其界面较为简洁并以应用为基础进行设计。而由于Snapdragon具备谷歌Android的支持能力,加上后者又有对3G智能手机应用做过一定的优化,因此我们猜测联想的智能本很可能会使用这款操作系统。

史上看,联想与Linxu之间的关系显得错综复杂,时冷时热.当年联想的Thin ......

Linux misc设备

参考:
http://longer.spaces.eepw.com.cn/articles/article/item/60415
http://imganquan.org/blog/?p=350
网上找的,归纳一下:
杂项设备(misc device)
杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include\linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10 ,一起归于misc device,其实misc_register就是用主标号10调用register_chrdev()的。
也就是说,misc设备其实也就是特殊的字符设备。
字符设备(char device)
使用register_chrdev(LED_MAJOR,DEVICE_NAME,&dev_fops)注册字符设备驱动程序时,如果有多个设备使用该函数注册驱动程序,LED_MAJOR不能相同,否则几个设备都无法注册(我已验证)。如果模块使用该方式注册并且 LED_MAJOR为0(自动分配主设备号 ),使用insmod命令加载模块时会在终端显示分配的主设备号和次设备号,在/dev目录下建立该节点,比如设备leds,如果加载该模块时分配的主设备号和次设备号为253和0,则建立节点:mknod leds c 253 0。使用register_chrdev (LED_MAJOR,DEVICE_NAME,&dev_fops) ......

linux库文件编写入门【摘自 chinaunix】

转贴自: http://hi.baidu.com/harrybobo/blog/item/ae3347b51711afc637d3ca69.html
一、为什么要使用库文件
我们在实际编程工作中肯定会遇到这种情况:有几个项目里有一些函数模块的功能相同,
实现代码也相同,也是我们所说的重复代码。比如,很多项目里都有一个用户验证的功能。
代码段如下:
//UserLogin.h文件,提供函数声明
int IsValidUser(char* username, int namelen);
    //UserLogin.c文件,实现对用户信息的验证
int IsValidUser(char* username, int namelen)
{
   int IsValid = 0;
   /*下面是具体的处理代码,略去*/
   return IsValid
}
如果每个项目都保存着这两个UserLogin.h和UserLogin.c文件,会有以下几个弊端:
1、每个项目里都有重复的模块,造成代码重复。  
2、代码的重用性不好,一旦IsValidUser的代码发生了变化,为了保持设计的一致性,我们还要手工修改其他项目里的UserLogin.c文件,既费时又费力,还容易出错。  
库文件就是对公共代码的一种组织形式。
为了解决上面两个弊端,就提出了用库文件存放公共代码的解决方案,其要点就是把公共的(也就是可以 ......
总记录数:5772; 总页数:962; 每页6 条; 首页 上一页 [782] [783] [784] [785] 786 [787] [788] [789] [790] [791]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号