- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 调试
调试和测试linux程序的5个阶段 1.测试:找出程序中存在的错误或缺陷 2.固化:让程序的错误可重现 3.定位:确认相关的代码行 4.纠正:修改代码纠正错误 5.验证:确定修改解决了问题 采样法: 在程序中增加打印输出一些相关信息 利用编译器标志可以方便的添加,删除调试代码 例 #define BASIC_DEBUG 1 #define EXTRA_DEBU
2017-02-20 13:16:39
322
原创 make
Make make命令需要一个名为makefile的文件来告诉它如何构建一个应用程序,makefile文件由一组依赖关系和规则构成 make命令常用的三个参数: -k: 让make命令在发生错误时仍然继续执行 -n: 让make命令输出要执行的操作步骤,而不真正的执行这些操作 -f: 指定哪个文件作为makefile文件 makefile依赖关系:定义了最终应用程
2017-02-19 15:11:51
856
原创 使用curses函数管理基于文本的屏幕
curses标准作为一个重要的过渡,位于简单的文本行程序和完全图形化界面的X视窗系统程序之间。curses还可以管理键盘提供一种简单易用的非阻塞字符输入字符输入模式。 curses的操作目标是一个curses窗口,通常是一个终端屏幕。有两个数据结构来映射终端屏幕,stdscr和curscr。stdscr理解为逻辑屏幕,curscr理解为物理屏幕。通过调用refresh函数来刷新cursc
2017-02-15 14:10:46
669
原创 终端
何为终端: http://www.programgo.com/article/8062473246/ http://www.programgo.com/article/7784652169/;jsessionid=242CCD1156839513C97203D4E4623CB7 一个终端模拟器打开的窗口可以视为一个终端,tty1到tty7也是终端 终端也是一个设备文件,通常一个
2017-02-10 13:18:14
379
原创 Linux环境-日志、资源和限制
日志: 系统运行时或者程序运行时会产生很多信息,通常将其保存于/var/log或者/usr/adm UNIX规范提供了一个产生信息的接口 #include void syslog(int priority, const char *message, arguments...); priority 是一个严重级别与一个设施值的按位或,根据不同的系统配置,不同的严重级别系统会做出不
2017-02-09 21:10:57
581
原创 Linux环境-临时文件、用户信息、主机信息
临时文件: #include char *tmpnam (char *s); 返回一个与所有已存在文件都不同的临时文件名,但是另外一个程序可能会创建出与之同名的文件,s也可保存临时文件名 FILE *tmpfile(void); 返回一个文件流指针,它指向一个唯一的临时文件。该文件以读写的方式打开(通常是以w+方式的fopen), 当对它的所有引用全部关闭时,该文件会被自
2017-02-09 14:50:53
404
原创 Linux环境-环境变量、时间和日期
环境变量 环境由一组格式为“名字=值“的字符串组成 在C语言程序中可以通过putenv和getenv函数来访问和设置环境变量, 在environ变量中保存有程序的所有环境变量,它以null结尾。 #include extern char **environ; char *getenv(const char *name); name: 为环境变量的名称 例如HOME 返
2017-02-09 13:45:01
3121
原创 Linux环境-程序参数
程序参数: int main (int argc, char *argv[]) argc为参数的个数 argv存有输入参数 第一个为程序自身的名字 例: $ myprog left right 'and center' argc 为 4 argv 为 { "myprog", "left", "right", "and center" } 通常,通过一
2017-02-08 17:57:50
375
原创 目录的库函数操作
与文件流类似,操作目录通过目录流来实现 FILE* -> DIR* 目录数据项会在dirent结构体中返回,其包含于dirent.h dirent: ino_t d_ino 文件的inode节点号 char d_name[] 文件的名字 #include #include DIR *opendir (const char *name);//打开一个目录流
2017-02-06 14:34:22
216
原创 文件和目录的维护
#include int chmod (const char *path, mode_t mode); 修改指定文件的权限,与open调用同样 #include #include int chown (const char *path, uid_t owner, gid_t group); 修改指定文件的 owner 和 group (getuid()和get
2017-02-06 14:12:09
404
原创 文件的系统调用
系统调用的效率底: 1.系统调用会影响系统的性能 与函数调用相比,在执行系统调用时,linux必须从运行用户代码切换到执行内核代码, 然后在返回用户代码。所以尽可能的减少系统调用的次数。 2.硬件一次读写的数据块是规定的 会导致留下过多的空隙导致空间浪费 系统调用与文件描述符: 1.系统调用一般通过文件描述符操作,文件描述符用来标记一个打开的文件或设备 2.一个程序运行时,它一
2017-02-05 12:35:55
383
原创 Linux文件结构
Linux关于文件操作有两种方式: 系统调用 标准I/O Linux中一切都是文件: 文件: 内容、名字 + 属性(这些管理信息被保存在文件的indode中,它是文件系统中的一个特殊的数据块。 系统使用的是文件的indode编号 目录:保存其他文件的节点号和名字的文件 它的内容:每个数据项都是指向某个文件节点的链接,删除文件名就等于删除与之对应的链接 文件的删除:
2017-02-05 12:28:06
260
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人