Linux/Shell
文章平均质量分 65
如沐春风心旷神怡
成功等于坚定的信念加上不间断的努力
展开
-
Linux系统结构 详解
对Linux的系统结构有一个提纲挈领的介绍。不错-----------------------------------Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。 1转载 2015-03-14 17:37:27 · 876 阅读 · 0 评论 -
总结之linux多线程
一.Linux的多线程和同步1)多线程Linux是基于进程为单位组织操作,线程也是基于进程。多线程就是允许在一个进程内存在多个控制权,以便多个函数处于激活状态,从而让多个函数同时运行。即使单CPU的计算机,也可以通过不停地在不同线程的指令切换,从而达到多线程同时运行的效果。2)并发多线程相当于一个并发系统。多个任务可以共享资源,特别是同时写入某个变量时,就需要解决同步的原创 2015-02-25 11:05:27 · 566 阅读 · 0 评论 -
总结之linux下的操作
1.虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享)在ubuntu下访问windows的资源。1)unbuntu上连接上网络2)在windows上共享一个文件夹,然后在ubuntu上挂载。http://blog.csdn.net/chencheng126/article/details/439385532.Linux mount Wi原创 2015-02-26 16:36:02 · 1193 阅读 · 0 评论 -
Linux的SOCKET编程详解
这是一篇不错的文章,对socket编程中的原理和要点讲解的都很清楚。------------------------------Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进转载 2015-03-14 16:40:06 · 7806 阅读 · 3 评论 -
子线程循环 10 次,接着主线程循环 100 次
子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。#include #include #include #include #include #define LOOP 5int num = 0; int parm_0 = 0; int parm_1 = 1;pthre转载 2015-03-23 10:39:36 · 1350 阅读 · 0 评论 -
Linux网络编程面试题及解答
1.Linux网络编程的常见面试题:http://blog.csdn.net/chencheng126/article/details/44344777更详细的解答,比上面的补充了一些知识点:http://blog.csdn.net/chencheng126/article/details/44407901原创 2015-03-18 11:24:14 · 11132 阅读 · 0 评论 -
epoll和select区别
一篇好文,介绍epoll和select很清楚(问题引入,联系,区别以及用法)。后面它给的两个链接,也很好。-------------------------------先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法一、问题引出 联系区别问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描转载 2015-03-18 14:48:05 · 2268 阅读 · 0 评论 -
主线程和子线程分别循环一定次数
运用到了互斥量和条件变量,分别在主进程和子进程中循环。编译的时候遇到两个问题:1.C语言中不支持bool类型,所以需要自定义bool为int2.for语言中,不支持for(int i=..),不然会报一个'for' loop initial declarations are only allowed in C99 mode错误。#include #includ原创 2015-03-24 15:10:00 · 2818 阅读 · 1 评论 -
生产者和消费者问题
一个不错的例子,练手用#include #include #include #include #define bool int#define false 0#define true 1#define BUFFER_LENGTH 100pthread_mutex_t mylock = PTHREAD_MUTEX_INITIALIZER;pthread_c原创 2015-03-24 15:49:27 · 2286 阅读 · 0 评论 -
总结之linux下网络编程
1.有一篇好的文章,对Linux下socket编程的原理和要点说的很清楚:http://blog.csdn.net/chencheng126/article/details/442607992.一些windows网络编程的要点吧。包括大头序,小头序,网络字节序。一些常用的函数等。。http://blog.csdn.net/chencheng126/article/detai原创 2015-03-14 16:50:46 · 13151 阅读 · 0 评论 -
Epoll模型详解
Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在 我用的2.6.15-25-386内核中,该值是1024,搜转载 2015-04-30 17:15:57 · 2791 阅读 · 0 评论 -
Epoll简介以及例子
第一部分:Epoll简介问题 : Select,Poll和Epoll的区别答案 : Epoll和Select的区别1. 遍历方式的区别。select判断是否有事件发生是遍历的,而epoll是事件响应的,一旦句柄上有事件来了,就马上选出来。2. 数目的区别。select一般由一个内核参数(1024)限制了监听的句柄数,但是转载 2015-05-04 12:51:24 · 1977 阅读 · 0 评论 -
总计之一些典型的题
1.count words一个比较好的关于map,vector,map的例子http://blog.csdn.net/chencheng126/article/details/417928552.二进制中包含1的数量关于与运算,比较巧的例子http://blog.csdn.net/chencheng126/article/details/38829097原创 2015-03-16 13:58:04 · 488 阅读 · 0 评论 -
linux--多线程--面试题
刚无意中看到MoreWindows博主秒杀多线程面试题(http://blog.csdn.net/column/details/killthreadseries.html),第一篇就有他收集的面试题。那我就用来检验一下自己学的怎么样吧。 前面的选择题那些跳过,直接看最后的编程题。第三题(某培训机构的练习题):子线程循环 10 次,接着主线程循环 100 次,接转载 2015-03-20 15:33:53 · 2312 阅读 · 0 评论 -
一道多线程面试题分析(控制输出顺序)
编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。#include #include #include #include #include #define DEBUG 1 int num = 0; pthread_mutex_t myloc转载 2015-03-20 10:54:04 · 3628 阅读 · 1 评论 -
GCC
1.程序的编译过程。预处理->编译->汇编->链接预处理:主要是处理源文件中的宏,比如#ifdef、 #include和#define命令。gcc -E test.c -o test.i,生成中间文件.i编译:将中间文件.i生成汇编文件.s。GCC -S test.i -o test.s汇编:将汇编文件.s生成机器语言.o。GCC -c test.s -o test.o链接:原创 2014-10-20 10:51:51 · 421 阅读 · 0 评论 -
Linux多线程与同步
典型的UNIX系统都支持一个进程创建多个线程(thread)。在Linux进程基础中提到,Linux以进程为单位组织操作,Linux中的线程也都基于进程。尽管实现方式有异于其它的UNIX系统,但Linux的多线程在逻辑和使用上与真正的多线程并没有差别。 多线程我们先来看一下什么是多线程。在Linux从程序到进程中,我们看到了一个程序在内存中的表示。这个程序的整个运行过程中,转载 2015-02-23 14:48:00 · 580 阅读 · 0 评论 -
虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享)
在ubuntu下访问windows的资源。1.unbuntu上连接上网络2.在windows上共享一个文件夹,然后在ubuntu上挂载。参加下面这个文章吧。---------------------------------------------------------------------摘要: 使用虚拟机运行Ubuntu时,主机与转载 2015-02-25 16:49:05 · 2342 阅读 · 0 评论 -
线程同步之条件变量使用手记线程同步之条件变量使用手记
由来:最近一直在想怎么高效率的在IO线程接收到数据时通知逻辑线程(基于线程池)工作的问题,像网络编程的服务器模型的一些模型都需要用到这个实现,下面我这里简单的罗列一个多线程的网络服务器模型 半同步/半异步(half-sync/half-async): 许多餐厅使用 半同步/半异步 模式的变体。例如,餐厅常常雇佣一个领班负责迎接顾客,并在餐厅繁忙时留意给顾客安排桌位,转载 2015-02-24 22:32:22 · 509 阅读 · 0 评论 -
Linux 上线程开发 API 的概要介绍
1.对linux多线程API有一个总结2.linux多线程中的5条经验介绍了其它开源类库进行多线程开发,比如boost,对跨平台支持不错,如果要求高稳定的跨平台开发,首选boost.---------------------多线程开发在 Linux 平台上已经有成熟的 Pthread 库支持。其涉及的多线程开发的最基本概念主要包含三点:线程,转载 2015-02-26 11:12:21 · 676 阅读 · 1 评论 -
Linux mount Windows共享后编译出现“Value too large for defined data type”
搜了一下,通过mount来访问的windows共享目录下的C代码的时候,容易出现这个问题,后面加nounix,noserverino就搞定mount //135.252.154.66/share /home/cc/examples -o username=chengic,password=****,dmask=777,fmask=777,nounix,noserverino今天遇到原创 2015-02-25 17:31:48 · 1307 阅读 · 0 评论 -
去除^M的方法
方法一:1. 按ESC键2. 输入 :%s/^M//g确定 ^M是使用 "CTRL-V CTRL-M" 而不是字面上的 ^M。这个正则式将替换所有回车符前的 ^M为空($是为了保证^M出现在行尾)方法二、用vim输入 :set notextmode方法三、一些linux版本有 dos2unix 程序,可以用来祛除^M原创 2015-02-26 11:25:53 · 5397 阅读 · 0 评论 -
Linux下C语言的调试
GDB的基本调试说明 ---------------------调试是每个程序员都会面临的问题. 如何提高程序员的调试效率, 更好更快地定位程序中的问题从而加快程序开发的进度, 是大家共同面对的问题. 可能Windows用户顺口就会说出:用VC呗 :-) , 它提供了设置断点, 单步跟踪等的图形界面, 使调试起来直观易用. 但Linux用户可能要生闷气了 O:-) : 难道我们Linu转载 2015-02-26 09:57:39 · 607 阅读 · 0 评论 -
Linux环境下网络编程杂谈
一些linux网络编程常用的知识点吧:大头序,小头序,网络字节序32bit的地址和10进制的转化IP地址和主机名的转化----------------------------------------今天我们说说“Pre-网络编程”。内容比较杂,但都是在做网络应用程序开发过程中经常要遇到的问题。一、大端、小端和网络字节序小端字节序:little-endian,将低转载 2015-02-28 14:00:59 · 1496 阅读 · 0 评论 -
简单Linux C线程池
为什么使用线程池?线程池的基本原理?以及一个简单的线程池的实现。这篇文章对上面几个问题,说的简单清楚。------------------------------------------------------------------大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程转载 2015-02-26 17:04:47 · 563 阅读 · 0 评论 -
linux静态链接库与动态链接库的区别及动态库的创建(转)
一、引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为“libxxx.a”的形式转载 2015-02-28 16:27:16 · 465 阅读 · 0 评论 -
C++常见多线程编程
这些题的解答可以参考另一个链接:http://blog.csdn.net/chencheng126/article/details/44652533这篇文章的一些亮点,如:对多线程的同步和互斥的区别,举得例子很清楚。就是生产者和多个消费者之间的关系。生产者和消费者之间是同步,而多个消费者之间是互斥。--------------------------------转载 2015-03-26 17:17:48 · 3882 阅读 · 1 评论