
C语言
CBinary
这个作者很懒,什么都没留下…
展开
-
C语言堆和栈的区别
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教转载 2012-04-09 09:44:21 · 391 阅读 · 0 评论 -
ll命令字段所代表的意思
ll命令:查看文件的属性 ll命令:查看文件的属性功能:以长格式显示目标文件或目录的属性。语法:ll [选项] 文件或目录-h或--human-readable 和ls命令的-h一样,用"K","M","G"来显示文件和目录的大小。-c 以更改时间排序,显示文件和目录例:1、查看两个文件的属性linux@server:~转载 2012-05-10 20:24:58 · 10730 阅读 · 1 评论 -
vi的使用方法
Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体。Linux 当然也有,它的 vi 其实是 elvis(版权问题),不过它们都差不多。熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外的软体。所以,学习 vi 的基转载 2012-05-12 12:28:21 · 1496 阅读 · 0 评论 -
ubuntu的samba服务器的配置
为了避免一些小的问题也要老是重启电脑,还是狠心要装个虚拟机,那共享就必不可少了,virtualbox的共享我是不想提了,所以还是用samba服务器吧,下面是我的安装过程:所有工作之前,请确保你的虚拟机和WINDOWS之间的网络连接方式是桥接,否则samba访问失败1、安装samba:这个我还是比较喜欢用命令行安装,当然也可以直接用系统自带的Synaptic pa转载 2012-05-18 12:11:05 · 2398 阅读 · 0 评论 -
(linux)su与sudo
摘要: 超级用户是系统最高权限的拥有者,是系统管理唯一的胜任者;由于权限的超级并且达到无所不能的地步,如果管理不擅,必会对系统安全造成威胁。 除了尽可能的避免用直接用超级用户root登录系统外,我们还要学会在普通用户下临时切换到超级用户root下完成必要的系统管理工作;从用户管理和系统安全角度来说是极有意义的; 本文对普通用户切换到root用户的实现命令 su 和sudo 做了实例解说;希望能为初转载 2012-05-10 22:05:01 · 758 阅读 · 2 评论 -
select函数
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include sys/time.h> #include unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exse转载 2012-06-01 16:57:11 · 742 阅读 · 0 评论 -
网络编程中的read,write函数
关于TCP/IP协议,建议参考Richard Stevens的《TCP/IP Illustrated,vol1》(TCP/IP详解卷1)。关于第二层面,依然建议Richard Stevens的《Unix network proggramming,vol1》(Unix网络编程卷1),这两本书公认是Unix网络编程的圣经。至于第三个层面,UNP的书中有所提及,也有著名的C10K问题,业界也有各转载 2012-06-01 17:03:25 · 5904 阅读 · 0 评论 -
学习Linux的心得
通过这几年来对Linux的学习,一步一步摸着石头过河,到现在才刚刚上岸。我能起的作用可能可以告诉你一些学习的方法,当你遇到困难的时候有个人在旁边给予帮助。说句心里话,对于Linux的掌握我还只能算是很粗的东西,因为看了很多大师们的东西以后,发现自已离他们真得还很远。我不是要打击你的意思,是告诉你实情。但也可以告诉你,就这一点现在还是比较好混口饭吃。对她了解掌握的越深,你会发现他几乎什么都能做,有了转载 2012-05-15 18:57:25 · 544 阅读 · 0 评论 -
ln 命令详解
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s转载 2012-05-15 20:15:39 · 419 阅读 · 0 评论 -
ubuntu 10.04下的配置tftp服务器
第1步:安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。然后还需要安装xinetd,在终端下输入 sudo apt-get install xinetd,安装好xinetd。第2步:转载 2012-05-17 17:27:23 · 404 阅读 · 0 评论 -
u-boot-1.3.4 移植到S3C2440 (带有某些解析
移植u-boot-1.3.4到S3C2440一.预备知识:1. 首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的。2. 2440和2410的区别:2440和2410的区别主要是2440的主频更高,增加了摄像头接口和AC‘97音频接口;寄存器方面,除了新增模块的寄存器外,移植所要注意的是NAND FlASH控转载 2012-05-18 18:54:27 · 1246 阅读 · 0 评论 -
bzero 和memset的区别
bzero 原型:extern void bzero(void *s, int n); 用法:#include 功能:置字节字符串s的前n个字节为零且包括‘\0’。 说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在P转载 2012-05-25 18:09:40 · 7099 阅读 · 0 评论 -
sqlite3数据库的使用方法
1. 安装SQLite3sudo apt-get install sqlite3 2. 安装Sqlite3编译需要的工具包如果,你需要的话可以安装该工具包。只是为了体验一把,可以不安装。该项是可选项。apt-get install libsqlite3-dev 3. 检查安装是否成功执行下面命令,会出现sqlite版本号,如3.6.22sqlite3 -v转载 2012-05-25 18:11:40 · 135 阅读 · 0 评论 -
fprintf的用法
初学linux C库,能见到它的原型如下:int fprintf(FILE *stream,const char *format,...) 查程序例时,见到如下调用:fprint(stderr,"Cannot open output file.\n");程序中未见stderr的任何定义声明和初始化,看来这个函数无法按照自己理解进行调用了,一定有很多自己的标准和定义,C库的应用,查转载 2012-05-25 17:55:43 · 1024 阅读 · 0 评论 -
信号量与信号
信号量(Semaphore),有时被称为信号灯,是在多环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore VI以及Release Sem翻译 2012-05-10 14:57:39 · 485 阅读 · 0 评论 -
(C++)引用和指针的区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。 在C++中,指针和引用经常用于函数的转载 2012-04-23 10:48:38 · 342 阅读 · 0 评论 -
函数指针与指针函数
函数指针在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针 变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可转载 2012-04-09 10:36:55 · 252 阅读 · 0 评论 -
函数调用
函数名与函数指针一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){ MyFun(10); //这里是调用MyFun(10);函数 return翻译 2012-04-09 10:22:23 · 254 阅读 · 0 评论 -
(VC++)unresolved external symbol ……
当我们在使用VC开发C++的时候会遇到一些连接错误,这些错误比编译错误要难改正,笔者今天就遇到这样一个错误1.问题描叙: error LNK2001: unresolved external symbol _WinMain@16debug/main.exe:fatal error LNK 1120:1 unresolved externals error execu转载 2012-04-12 16:38:28 · 323 阅读 · 0 评论 -
VC++中的Win32 Application和Win32 Console Application区别(
Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序。其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的…… 它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。 Win3转载 2012-04-12 16:16:49 · 306 阅读 · 0 评论 -
(C++)虚函数和纯虚函数
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 前几天笔试的时候碰到考C++多态性的题目,因为不是自己的专业不是纯做软件开发,C++学习不是很好,做得有点混乱。回来以后立刻查了相关资料,大概明白了一点,可能以后解题的时候不会乱了。 先摘下一些网上的书上的基转载 2012-04-13 14:50:22 · 273 阅读 · 0 评论 -
(C++)重载,覆盖,隐藏
这三个概念都是与OO中的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧。 重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。 覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是转载 2012-04-13 16:31:27 · 268 阅读 · 0 评论 -
深层拷贝和前浅拷贝
例如,在一个类中,有一个指向一个Buffer的指针,所以我们可以说这个指针指向了一个资源(这个资源可以是一块保存数据的内存)。浅拷贝,也就是按照比特一位一位地进行拷贝,是把一个类完全一样拷贝到另一个类。这时就出现问题了:类内部的指针的值是一样的,也就是说,两个类的实例内部的指针指向了同一块内存。当这两个对象析构的时候,同一块内存就会给析构两次,当然会出现问题。深拷贝,就是在这点上和浅拷贝不转载 2012-04-25 17:54:09 · 414 阅读 · 0 评论 -
(C++)对象指针和对象引用
在C++ 中,可以说明指向类的数据成员和成员函数的指针 1、指向数据成员的指针格式如下: ::*2、指向成员函数的指针格式如下:(::*)() 如下例:class A{ public: int fun(int b){return a*c + b;} A(int i){ a = i;} int c; p转载 2012-04-18 16:50:27 · 647 阅读 · 0 评论 -
(C++)基类和派生类的成员访问
#include using namespace std; class Cbase { public: Cbase(int x = 0, int y = 0, int z = 0):a(x), b(y), c(z){}; void display(); void display(int a, int b); void set();转载 2012-04-19 19:16:29 · 1171 阅读 · 0 评论 -
(LINUX)ubuntu下配置SSH服务以及SecureCRT工具的使用
平时都在windows上开发,所以习惯了这样的操作,在linux下写代码,调试真不方便,怎么办呢,于是找到了一个远程登陆工具SecureCRT,这个工具需要SSH服务的支持,比用TELNET服务明文传输安全多了,SSH是密文传输的,下面讲下怎么配置吧。 首先你要linux与windows之间平通。 首先备份自带的源 : sudo cp /etc/apt/sour转载 2012-04-19 18:06:18 · 1353 阅读 · 0 评论 -
异步套接字
select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include sys/time.h> #include unistd.h> select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include sys/time.h>转载 2012-05-07 11:04:25 · 327 阅读 · 0 评论 -
tcflush() 的用法
tcflush() 丢弃要写入引用的对象,但是尚未传输的数据,或者收到但是尚未读取的数据,取决于 queue_selector 的值: TCIFLUSH 刷新收到的数据但是不读 TCOFLUSH 刷新写入的数据但是不传送 TCIOFLUSH 同时刷新收到的数据但是不读,并且刷新写入的数据但是不传送通俗地说就是将输出缓冲器清空,把输入缓冲区清空。缓冲区里的数据都废弃。转载 2012-05-07 10:28:04 · 7216 阅读 · 0 评论 -
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include sys/time.h> #include unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset转载 2012-05-07 11:01:40 · 273 阅读 · 0 评论 -
sqlite3数据库的使用方法
1. 安装SQLite3sudo apt-get install sqlite3 2. 安装Sqlite3编译需要的工具包如果,你需要的话可以安装该工具包。只是为了体验一把,可以不安装。该项是可选项。apt-get install libsqlite3-dev 3. 检查安装是否成功执行下面命令,会出现sqlite版本号,如3.6.22sqlite3 -v转载 2012-05-25 18:13:22 · 7988 阅读 · 0 评论