找回密码
 注册
搜索

标签: Linux编程

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

分享 22:进程之二(SetUID和SetGID)
Daniel2010 2014-2-7 22:26
( GNU_Linux 编程指南 - 第二版 -p198 ) 每个进程有三个用户 ID(UID) 和三个用户组 ID(GID) 。它们主要用于安全目的,如为用户赋予访问权限以及限制用户只能运行某种程序。真实用户 ID 和真实用户组 ID 代表用户的真实身份。当用户登录时从 /etc/passwd 文件中读取它们。它们是你的登录名和主用户 ...
个人分类: Linux编程|443 次阅读|0 个评论
分享 21. 进程学习之一(进程标识号)
Daniel2010 2014-2-7 13:11
( GNU_Linux 编程指南 - 第二版 -p197 ) 进程最著名的属性就是它的进程好( process ID,PID ),和它的父进程号( parent process,PPID )。 PID 和 PPID 都是非零正整数。一个 PID 唯一的标识一个进程。一个进程创建一个新进程称为创建一个子进程。相反地,创建子进程的进程称为父进程( par ...
个人分类: Linux编程|277 次阅读|0 个评论
分享 20. make之六(makefile与函数)
Daniel2010 2014-2-6 19:54
在 makefile 中可以使用函数来处理变量,从而让命令或规则更为灵活和智能。函数调用后,函数的返回值可以当作变量来使用。 1. 函数调用的语法 函数调用很像变量的使用,也是以“ $ ”来标识的,其语法如下: &nbs ...
个人分类: Linux编程|208 次阅读|0 个评论
分享 19. make之五(makefile与条件语句)
Daniel2010 2014-2-6 17:39
Makefile 中的条件语句可以根据变量的值执行或忽略 makefile 文件中的一部分脚本。条件语句可以将一个变量与其他变量的相比较,或将一个变量与一个字符串常量相比较。条件语句用于控制 make 实际看见的 makefile 文件部分,而不能用于执行时控制 shell 命令。 1. &nb ...
个人分类: Linux编程|258 次阅读|0 个评论
分享 18. make之四(makefile与变量)
Daniel2010 2014-2-6 16:30
变量是在 makefile 中定义的名字,用来代替一个文本字符串,该文本字符串称为的值。变量名是不包括“:”、“ # ”、“ = ”及空格的任何字符串。同时,变量名包含字母、数字及下划线以外的情况应尽可能避免,因为它们可能在将来被赋予特别的含义。变量名是大小写敏感的,推荐在 mak ...
个人分类: Linux编程|293 次阅读|0 个评论
分享 14. 调试GDB四(堆栈跟踪)
Daniel2010 2014-2-5 17:30
程序“调用堆栈”是指程序执行到当前函数时的所有已调用函数的列表(包括当前函数)。每个函数及其变量都被分配了一个“帧”,最近调用的函数在 0 号帧中(“底部”帧)。要打印堆栈信息,可以执行 bt( 或 backtrace) 命令。 ...
个人分类: Linux编程|77 次阅读|0 个评论
分享 13. 调试GDB三(core文件)
Daniel2010 2014-2-5 17:29
GDB 有一个重要的功能就是分析程序运行崩溃时生成的 core 文件,在执行运行之前执行 ulimit –c unlimited 命令,当程序在运行过程中发生崩溃时,系统将自动生成一个 core 文件,用于记录崩溃时刻程序内的堆栈信息。 GDB 可以装入 core 文件,方便我们分析程序崩溃的具体原因和位置,如果崩溃的程序整合了调试 ...
个人分类: Linux编程|90 次阅读|0 个评论
分享 11. 调试GDB一(示例)
Daniel2010 2014-2-5 17:21
1. 编译 要使用 GDB 调试程序,必须确保被调试程序的可执行文件内附加了调试信息,为此, gcc 或 g++ 编译源代码时需要使用 -g 选项。 gcc –g example.c –o example 2. 运行 在 shell 终端中,使用 gdb 命令附加 ...
个人分类: Linux编程|111 次阅读|0 个评论
分享 10. GCC给出的错误信息(变量未定义而使用)
Daniel2010 2014-2-4 15:37
这里的变量可分为局部变量、全局变量、宏变量、函数指针等,变量未定义而使用的情况很常见,具体可以分为如下几种情况。 1. 局部变量未定义 局部变量因为使用范围有限,未定义的情况很少见,多数情况是由变量名被写错而造成的。 2. 全局变量未 ...
个人分类: Linux编程|164 次阅读|0 个评论
分享 9. GCC给出的错误信息(缺少库文件)
Daniel2010 2014-2-4 15:03
如下所示代码在主线程中新建一个子线程,用到了 pthread 函数库中的 pthread_create 函数。 /*pthread*/ #include stdio.h #include unis ...
个人分类: Linux编程|88 次阅读|0 个评论
分享 8. GCC给出的错误信息(缺少头文件)
Daniel2010 2014-2-4 12:40
如下面这段代码,故意将 time_t 结构体所依赖的头文件 time.h 注释掉, 编译看看提示什么错误。 /*timenow.c*/ #include stdio.h //include time.h ...
个人分类: Linux编程|83 次阅读|0 个评论
分享 6. 一个综合示例
Daniel2010 2014-2-4 11:16
/*add.c*/ int add(int a, int b) { return a+b; } /*head.h*/ #ifndef _HEAD_H #define _HEAD_H #include stdio.h #include math.h Int add(int a, int b); #endif ...
个人分类: Linux编程|84 次阅读|0 个评论
分享 5. 连接库文件
Daniel2010 2014-2-4 10:41
当我们需要提供一些函数接口给第三方时,出于隐藏函数实现代码或升级、集成方便的考虑,通常将这些函数接口编译成动态库( .so 文件)或者静态库( .a 文件),第三方若要使用这些函数库内的函数,就需要连接库文件。 那么如何连接库文件?首先将动态库或静态库复制到系统库所在的路径( /usr/lib 或 /l ...
个人分类: Linux编程|112 次阅读|0 个评论
分享 4. 多文件编译
Daniel2010 2014-2-4 10:01
(1) 编写源文件 编写 main.c 和 add.c 这两个文件, main.c 文件内调用 add.c 文件中的 add 函数。 /* main.c*/ #include stdio.h int main(void) { int a=5; & ...
个人分类: Linux编程|80 次阅读|0 个评论
分享 3. 附加调试信息
Daniel2010 2014-2-3 22:44
使用 GCC 开发程序,与之配套的调试工具便是 gdb ,简称 GUN Debugger ,我们常用它来调试 GCC 编译生成的可执行文件。默认编译生成的可执行文件是无法使用 gdb 来跟踪或调试的,因为可执行程序中没哟可供 gdb 调试使用的特殊信息,为了将必要的调试信息整合到可执行文件中,就需要用到 -g 选项。 ...
个人分类: Linux编程|78 次阅读|0 个评论

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-24 08:43 , Processed in 0.031807 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部