Unix/Linux编程
NowDoIT
这个作者很懒,什么都没留下…
展开
-
Unix/linux查看磁盘空间的命令
<br />du 查看目录大小<br /> -m 以兆为单位显示各级目录的大小<br /> -s 只显示第一级目录的大小<br /> --max-depth=n 显示目录的深度 n为数字 du -s 和du --max-depth=0 效果是一样的<br />df -h 统计磁盘的使用率<br />fdisk -l 查看分区情况<br />free 查看内存和交换分区的使用情况原创 2011-01-07 11:05:00 · 9211 阅读 · 0 评论 -
跨平台编程的原则
要时刻谨记跨平台的情况,防止在不同平台读取的数据地址及位数不同!!!如下代码:#if defined(WIN32)||defined(WIN64) MaxSize=%I64d "#else#ifdef T_LARGEFILE MaxSize原创 2011-09-08 14:06:09 · 402 阅读 · 0 评论 -
【老生常谈】printf函数打印字符的方式
在打印普通的字符的时候,使用printf("%c")是毫无疑问的。但是,如果是下面的情况呢?#include #include #define CC1 2#define CC2 1int main(int argc,char **argv){原创 2011-09-09 11:00:47 · 706 阅读 · 0 评论 -
【老生常谈】函数传参的几种方式优劣比较
明确函数传参的两种方式值传递(pass-by-value)和引用传递(pass-by-reference)明确C和C++的传值方式C语言只有值传递(pass-by-value),而C++实现了值传递(pass-by-value)和引用传递(pass-by-refere原创 2011-09-09 10:35:37 · 524 阅读 · 0 评论 -
Unix和Windows平台设置环境变量的区别
export和set$和%变量连接使用:和使用;原创 2011-09-15 14:48:20 · 346 阅读 · 0 评论 -
【老生常谈】谈谈C语言中如何实现的获取可变参数列表的功能
在C语言中,是通过下面这三个函数来完成对可变参数列表值的读取的。va_start(ap,fmt);vsprintf(info_buf,fmt,ap);va_end(ap);使用下面的代码来演示一下。#include #include #include原创 2011-09-09 11:03:02 · 576 阅读 · 0 评论 -
函数 stat() 详解
先看看MSDN的解釋:stat(): Get status information on a file.Parameters: path: pointer to a string containing the path of existing file. buffer: pointer to a structure that stores results.i原创 2011-10-20 15:44:02 · 3225 阅读 · 0 评论 -
如何验证机器的字节序是大端还是小端?!
大端模式:高字节放在内存的高地址上;小端模式:高字节放在内存的低地址上;验证程序:#inclucde #include int main(int argc,char *argv[]){ unsigned short s = 0xAABB; unsigned char *p = (unsigned char *)&s;原创 2011-10-31 14:31:01 · 572 阅读 · 0 评论 -
驗證Unix/Linux最深目錄以及獲取文件路徑名的最大限制程序
源代碼如下:#include #include #include #include #include #define DEPTH 100#define MYHOME "/home/yaodl"#define NAME "abcdedfhighkelsmgskdiskcjsieksksjdkslsjdlsls"#define MAXSIZE 8192i转载 2011-11-22 22:18:40 · 899 阅读 · 0 评论 -
Linux下调试工具gdb的常用命令
前提:廢話不多講,無法跟蹤進入調試,講得再多也是廢話。如何進入調試?1.編譯加上 -g 選項2.執行 gdb a.out (注意:a.out一定要存在,或者是指定路徑,這樣gdb才能導入并進行詳細分析)3.查看源文件并設置斷點(設置斷點可以設置函數斷點,比如 b myfuncname)4.執行,run arguments (需要加上a.out的參數) 1.编译注意原创 2011-11-08 11:31:39 · 404 阅读 · 0 评论 -
Linux下调试工具gdb的使用详解
前提:廢話不多講,無法跟蹤進入調試,講得再多也是廢話。如何進入調試?1.編譯加上 -g 選項2.執行 gdb a.out (注意:a.out一定要存在,或者是指定路徑,這樣gdb才能導入并進行詳細分析)3.查看源文件并設置斷點(設置斷點可以設置函數斷點,比如 b myfuncname)4.執行,run arguments (需要加上a.out的參數) GDB 概述转载 2011-11-08 11:20:11 · 668 阅读 · 0 评论 -
Linux應用常用命令總結(od/cut/wc/dd/diff/uniq/nice/du等)
用戶常使用od命令來顯示查看特殊文件的內容:指令名稱:od語法:od [-abcdfhilovx][-A ][-j ][-N ][-s ][-t ][-w ][--help][--version][文件...]說明:按照指定的模式顯示文件內容(默認是按照八進制顯示的)。具體應用實例請自行 'man od' 來查看ps:按照十六進制來默認查看文件內容的命令是 hexdump。而od,原创 2011-11-18 21:12:25 · 2052 阅读 · 0 评论 -
System V和Posix有何区别?
System V比较老,IPC实现起来各个平台可能略有差异。Posix 比较新,现在的unix/linux一般都支持,IPC函数实现简单,统一。 但是,在开发中具体选择哪一个,还需要慎重考虑对比。原创 2011-11-09 10:03:51 · 1294 阅读 · 0 评论 -
囘調函數詳解
囘調函數進階一:瞭解囘調函數調用函數:如果參數是一個函數指針,調用者可以傳遞一個函數的地址給實現者,即調用者提供一個函數但自己不去調用,而是讓實現者去調用它,這稱之為囘調函數。囘調函數示例:void func(void (*f)(void *),void *p);實現過程:調用者提供一個囘調函數,再提供一個準備傳遞給囘調函數的參數;把囘調函數傳給參數f,把準備傳給囘原创 2011-11-24 22:03:14 · 478 阅读 · 0 评论 -
测试unix/linux系统PV操作的性能示例
使用此程序可以粗略的测试linux系统下pv操作的性能。(System V 信号灯)如下:#include #include #include #include #include #include #include #include #include #include #define key_t doubleunion semun{原创 2012-01-16 13:37:51 · 891 阅读 · 0 评论 -
Unix/Linux更改文件、目录权限命令
Unix/Linux系统,有三个命令比较常用。 1. chmod 该命令可以更改文件或者目录的属性,比如增加可执行(+x)、为其它用户增加可读等权限。2. chgrp 该命令作用是更改文件或者目录所属的组,如 chgrp -R test /home/test 表示将目录 /h原创 2011-07-22 12:42:18 · 2863 阅读 · 0 评论 -
Svn的不常用技巧
无论是在windows平台还是在unix平台,svn都可以取得需要的版本号。命令如下: svn export update -v 320 svn_url命令表示export出版本号为 320的产品代码。这样,就避免了取得最新代码,然后去一个个的比较排查的麻烦了!同样的,命令 svn checkout update -v 320 svn_url 也是原创 2011-06-27 16:29:00 · 381 阅读 · 0 评论 -
linux压缩(解压缩)命令详解
<br />一.tar命令<br /> tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文 件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。<br />语法:tar [主选项+辅选项] 文件或者目录<br />转载 2011-01-23 11:31:00 · 383 阅读 · 0 评论 -
IPCS/IPCRM的使用
ipcs命令: 查看系统资源情况,有三个参数,分别为m(共享内存),s(信号量),以及q(消息队列)的情况.ipcrm命令: 删除共享内存,比如ipcrm -m xx;常常用于异常终止进程,而共享内存没有释放的情况.使用此命令来释放共享内存!原创 2011-01-23 16:44:00 · 583 阅读 · 0 评论 -
FTP和SFTP的异同
Ftp是文件传输协议,使用21号端口;而Sftp是安全文件传输协议,使用22号端口。这是一个博弈的问题,选择安全则效率低,反之效率高。应取决于应用场所的不同。FTP常用的命令:(无特殊说明,则针对的是服务端操作)open 打开一个远程服务端;cd 改变远程服务器的目录命令;lcd 改变本地/客户端的目录命令;get/recv 获取文件;send/put 发送文件;rename 重命名文件;mdelete 删除文件;FTP>ascii ;设置文件传输格式为ascii编码格式;FTP>binary/bi;设置原创 2011-02-28 21:17:00 · 1798 阅读 · 0 评论 -
HP sam
<br />HP中的sam工具具有很强的管理能力,这里只简单的描述下如何对用户进行管理。<br /> <br />首先进入sam,也就是输入 sam,然后选择u,回车。<br /> <br />进入到用户情况列表。选中要修改的用户名,选择action,选择reactive,这样就能对失效的用户进行激活。原创 2011-03-08 17:30:00 · 659 阅读 · 0 评论 -
快速定位函数出错信息的小技巧【巧用宏定义】
应用前提:项目规模比较大,完全更改劳神费心更改步骤:假如定位到函数void my_str(int a)出错 1. 更改函数信息,并进行打印。如下: void my_str(char *filename,int line,int a) { printf("%s %d/n",__FILE__,__LINE__); } 2. 更改头文件,将 void my_str(int a) 改为 void my_str(char *filename,i原创 2011-02-22 11:07:00 · 342 阅读 · 0 评论 -
Chmod命令详解
chmod命令详细用法 指令名称 : chmod <br />使用权限 : 所有使用者 <br />使用方式 : chmod [-cfvR] [--help] [--version] mode file... <br />说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 <br />参数 : <br />mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 <br转载 2011-05-11 14:35:00 · 378 阅读 · 0 评论 -
如何避免和去除unix上文件每一行结尾的符号^M
为什么会出现这种情况呢?原因在于windows上ftp到unix主机的时候,会默认的在行尾加^M。解决方法整理了一下,大概有下面这四种。1. 在本地打开文件的时候,保存到服务器的时候选择ascii码格式,上传之后就不会出现了。这种文本编辑工具很多,用ue就ok。2. unix上面使用vi打开文件,在编辑的时候使用替换命令,如下::%s/^M//g (全文替换^M为空)3. 使用强大的sed命令,组合参数实现替换。如下:sed filename | grep ^M s//g4. 使用unix上面的工具,原创 2011-03-28 17:43:00 · 3183 阅读 · 0 评论 -
AIX编译报错 "No licenses available" 如何解决?
<br />1506-507 (W) No licenses available. Contact your program supplier to add additional users. Compilation will proceed shortly.<br /><br />/ >cd usr/opt/ifor/bin<br />/usr/opt/ifor/bin >./i4blt -sl cn<br /><br />i4blt Version 4.6.8 AIX -- LUM Basic Lice转载 2011-05-26 14:48:00 · 2600 阅读 · 0 评论 -
Unix/Linux之df命令详解
df命令是一个比较常用的查看硬盘信息的命令,主要参数如下:df -a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。df -i:显示i节点信息,而不是磁盘块。df -t:显示各指定类型的文件系统的磁盘空间使用情况。df -x:列出不是某一指定类型文件系统的磁盘空间使用情况。df -T:显示文件系统类型。df 以512字节为单位 df –k: 以1024字节为单位df –m: 以兆为单位注1:unix/linux目录下有最大的文件个数限制吗?这一点其实是可以通过df -i来查看的。因为每原创 2011-04-04 15:23:00 · 1456 阅读 · 0 评论 -
AIX常用命令
<br />AIX版本号:<br />命令:oslevel<br />AIX的版本的格式通常为AIX x.x.x.x <br />例如: AIX 5.2.0.0 其数字从前到后代表的意义分别为: 作业系统版本号(version).发行版本号(release).改进版本号(modification).修正版本号(fix) <br />查看当前系统的芯片名称、系统名、节点名、型号等: <br />uname -p # 显示芯片名称,例如:powerpc <br />uname -r # 显示操作系统的发行号 <转载 2011-05-26 10:07:00 · 516 阅读 · 0 评论 -
多线程编程的原则以及Sem信号量和Mutex互斥锁的区别 (一)
1. 尽可能的使用mutex理念去设计架构2. 容易发生的问题 A. 循环死锁(互斥锁) B. 非递归死锁 C. 数据不同步 D. 过于积极的垃圾回收,内存清理3. 几个原则 A. 操作尽可能私有化 B. Public方法是在任何Thread、任何时刻可以调用的 C. 尽可能的使用mutex方式,而非信号量机制 D. 必须要对潜在的假设进行判断,是否符合实际条件? E. 获得锁之后,尽可能的少操作,以避免在get()内部继续调用资源锁原创 2011-05-27 11:20:00 · 1643 阅读 · 0 评论 -
多线程编程的原则以及Sem信号量和Mutex互斥锁的区别 (二)
1. 何时Sem不够,还需要使用Mutex? 假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像这样:add(){ pthread_mutex_lock(lock_s); sum++; pthread_mutex_unlock(lock_s);}原创 2011-05-27 16:44:00 · 673 阅读 · 0 评论 -
UNIX的历史发展与现状
当前Windows系列的操作系统已经占据了桌面计算机,而在高档工作站和服务器领域,Unix仍然具有无可替代的作用。尤其在用作Internet服务器方面,Unix的高性能、高可靠性仍然不是Windows NT的计算机所能比拟的。 但是Unix不是一个厂家的单独产品,在长期的发展过程中形成了多种不同的版本,虽然基本操作命令相似,但其中的差异对于不太了解Unix发展过程的使用者和网络管理员,会造成一定的困惑,从而造成使用或管理方面的问题。Unix的发展阶段 从总体来转载 2011-04-20 16:18:00 · 648 阅读 · 0 评论 -
Unix/Linux kill命令详解
kill -9 -1 杀死用户的所有进程原创 2011-06-16 16:26:00 · 562 阅读 · 0 评论 -
测试unix/linux系统PV操作的性能示例 之二【多个进程竞争PV操作】
创建信号灯程序: #include #include #include #include #include #include #include #include #include #include #define key_t doubleunion semun{ int val; struct semid_ds *buf; ushort *a原创 2012-01-16 14:38:12 · 742 阅读 · 0 评论