Chinaunix首页 | 论坛 | 博客
  • 博客访问: 894397
  • 博文数量: 299
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2493
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-21 10:07
个人简介

Linux后台服务器编程。

文章分类

全部博文(299)

文章存档

2015年(2)

2014年(297)

发布时间:2014-05-10 22:45:31

内核同步措施    为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。    Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内.........【阅读全文】

阅读(853) | 评论(0) | 转发(0)

发布时间:2014-05-10 17:21:51

一般文件的访问顺序:文件名 -> inode -> device block 一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读.........【阅读全文】

阅读(719) | 评论(1) | 转发(0)

发布时间:2014-05-10 16:50:49

Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。(2) 块设备:应用程序可以随机访问设备.........【阅读全文】

阅读(592) | 评论(0) | 转发(0)

发布时间:2014-04-29 18:03:17

http://wenku.baidu.com/link?url=1u7XnnlbBnatWfoDO1vP3OUe2C8-8jR5vQAADefrLy_VOlpmV383f-GYuNDVPXOeVFdoXxKHcq9o-DmC7D1VHFfYjLbOq7eR61HpIE30bDS......【阅读全文】

阅读(1089) | 评论(0) | 转发(0)

发布时间:2014-04-28 17:07:36

常用的APT命令参数:   apt-cache search package 搜索包   apt-cache show package 获取包的相关信息,如说明、大小、版本等   sudo apt-get install package 安装包   sudo apt-get install package - - reinstall 重新安装包   sudo apt-get -f install 修复安装"-f = ——fix-missing"  .........【阅读全文】

阅读(1094) | 评论(0) | 转发(0)

发布时间:2014-04-27 22:57:58

#!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...我们可以通过以下一个示例来进行实验,了解#!/bin/bash的使用。1)#!/bin/bash只能放在第一行,如果后面还有#!,那么只.........【阅读全文】

阅读(1241) | 评论(0) | 转发(0)

发布时间:2014-04-24 12:33:47

这里说明,Ubuntu 中系统没有了RH系统中的 chkconfig 命令 !可用一些小工具来管理 Ubuntu 的启动选项:小工具 rcconf:#sudo apt-get rcconf#sudo apt-get install rcconfroot 下运行: #sudo rcconf功能更全的工具:sysv-rc-conf#sudo apt-get update#sudo apt-get install .........【阅读全文】

阅读(2569) | 评论(0) | 转发(1)

发布时间:2014-04-17 21:41:37

linux下为了多线程同步,通常用到锁的概念。posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。它主要用如下5个函数进行操作。1:pthread_mutex_init(pthread_mutex_t * mutex,c.........【阅读全文】

阅读(1682) | 评论(0) | 转发(0)

发布时间:2014-03-27 12:01:59

在linux系统中coding解决僵尸进程~......【阅读全文】

阅读(2031) | 评论(0) | 转发(0)

发布时间:2014-03-26 11:37:55

更多内容请查阅:http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.cmds%2Fdoc%2Faixcmds5%2Ftr.htmvi/vim 中可以使用 :s 命令来替换字符串:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n 行.........【阅读全文】

阅读(1674) | 评论(0) | 转发(1)

发布时间:2014-03-25 21:41:12

目的:基本掌握了 make 的用法,能在Linux系统上编程。环境:Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备:准备三个文件:file1.c,file2.c, file2.hfile1.c:#include<stdio.h>#include "file2.h"intmain(){printf("printfile1$$$$$$$$$$$$$$$$$$$$$$$$\n");File2Pri.........【阅读全文】

阅读(1289) | 评论(0) | 转发(0)

发布时间:2014-03-25 16:03:39

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务。这使得 Linux Shell 开发技能成为开发人员的一项重要的、有竞争力的技能。本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧。避免定时任务脚本的常见问题很多.........【阅读全文】

阅读(1383) | 评论(0) | 转发(0)

发布时间:2014-03-25 12:02:54

摘要:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、 改变内核设置的机制。尽管在各种硬件平台上的 Linux 系统的 /proc 文件系统的 基本概念都是相同的,但本文只讨论基于 intel x86 架构的 Linux /proc 文件系 统。____.........【阅读全文】

阅读(1450) | 评论(0) | 转发(0)

发布时间:2014-03-24 22:35:16

TLB全称是Translation Look-aside Buffer,用来加速页表查找。这里关键的一点是:如果操作系统更改了页表内容,它必须相应的刷新TLB以使CPU不误用过时的表项。 TLB:Translation Lookaside Buffer.根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页.........【阅读全文】

阅读(3344) | 评论(0) | 转发(0)

发布时间:2014-03-24 22:23:58

为了提高读写文件速度,linux系统采用一种页缓存机制。当应用程序调用read,write等函数读写文件时,系统并不立即与硬盘进行操作,而是查看需要读取的数据是否已在页缓存中,如不在,则从硬盘读取。当写入时,只是将数据写入至页缓存,然后使用系统进程pdflush根据一定算法写入至硬盘,算法细节文章后部分会进行一.........【阅读全文】

阅读(1086) | 评论(0) | 转发(0)

发布时间:2014-03-24 16:51:41

概述本系列由两篇文章组成,介绍了当前用于 Linux 操作系统上的几种零拷贝技术,简单描述了各种零拷贝技术的实现,以及它们的特点和适用场景。本文是本系列文章的第一部分,主要是介绍一些零拷贝技术的相关背景知识,简要概述了 Linux 为什么需要零拷贝技术以及 Linux 中都有哪几种零拷贝技术。引言.........【阅读全文】

阅读(887) | 评论(0) | 转发(1)

发布时间:2014-03-24 12:29:07

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作.........【阅读全文】

阅读(531) | 评论(0) | 转发(0)

发布时间:2014-03-21 21:42:54

比如网卡的内核缓冲区,那这个缓冲区是在pc内存还是在网卡的芯片上呢?------解决方案--------------------网卡中的缓冲区既不属于内核空间,也不属于用户空间。它属于硬件缓冲,允许网卡与操作系统之间有个缓冲;内核缓冲区在内核空间,在内存中,用于内核程序,做为读自或写往硬件的数据缓冲区;用户缓冲区在用户空.........【阅读全文】

阅读(6578) | 评论(0) | 转发(0)

发布时间:2014-03-21 10:45:07

Linux 调度器内幕内核中这个非常重要的组件的最新版本改进了可伸缩性Linux? 内核继续不断发展并采用新技术,在可靠性、可伸缩性和性能方面获得了长足的发展。2.6 版本的内核最重要的特性之一是由 Ingo Molnar 实现的调度器。这个调度器是动态的,可以支持负载均衡,并以恒定的速度.........【阅读全文】

阅读(696) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

tianyashuibin2014-12-08 11:22

Oscarzhao:c++11 中貌似可以

嗯,是的,在c++11中可以

下面是在gcc的编译结果:
test_struct.cc:8:11: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
   int a = 1;
           ^

回复  |  举报

Oscarzhao2014-11-26 20:12

tianyashuibin:除了静态数据成员外,数据成员不能在类体内显式的初始化

举个最简单例子
struct a

  int a=1;
  int b=2;
};
这也不能通过啊!
原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间

c++11 中貌似可以

回复  |  举报

tianyashuibin2014-10-23 21:57

除了静态数据成员外,数据成员不能在类体内显式的初始化

举个最简单例子
struct a

  int a=1;
  int b=2;
};
这也不能通过啊!
原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间

回复  |  举报

tianyashuibin2014-10-23 21:39

1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员
2.进入构造函数后在构造函数中执行一般计算
  1.类里面的任何成员变量在定义时是不能初始化的。
  2.一般的数据成员可以在构造函数中初始化。
  3.const数据成员必须在构造函数的初始化列表中初始化。
  4.static要在类的定义外面初始化。   
  5.数组成员是不能在初始化列表里初始化的。
  6.不能给数组指定明显的初始化。  
这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。

回复  |  举报

tianyashuibin2014-10-23 21:32

记住静态成员这样初始化:
C/C++ code

class A
{
public:
   static const int a[3];
};
 
const int A::a[3] = {1,2,3};

回复  |  举报
留言热议
请登录后留言。

登录 注册