- 博客(64)
- 资源 (6)
- 收藏
- 关注
转载 Linux信号机制之sigaction结构体浅析
信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NULL
2017-10-14 14:42:51
629
转载 (笔记)Linux下的ioctl()函数详解
http://www.cnblogs.com/tdyizhen1314/p/4896689.html
2017-10-14 14:38:15
1277
转载 gcc编译动态和静态链接库
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 第1步:编辑得到举例的程序--hello.c和test.c;
2017-08-14 20:44:23
291
转载 linux gcc 静态编译和动态编译
一.编译和链接选项:第一步:预编译。 gcc -E hello.c -o hello.i-E参数: GCC在完成预处理后,停止编译过程。预处理的宏定义展开到 hello.i中。第二步:生成目标代码;gcc -c hello.i -o hello.o-c参数:生成目标代码。 将 hello.i编译为目标代码,也可以通过源文件直接生成。gcc -c hello.
2017-08-14 20:42:53
5184
转载 fedora18系统中安装Apache+PHP+MySQL环境
一、安装apache服务器 1.1使用yum进行安装:# yum install httpd1.2配置Apache能够随系统启动而启动#chkconfig --levels 235 httpd on1.3启动/关闭Apache服务:#service httpd start#service httpd stop或者命令启动/关闭Apache:#/etc/ini
2017-08-11 16:34:35
440
原创 Smaba安装及配置文件配置注意事项
http://www.linuxidc.com/Linux/2012-02/54422p2.htmhttp://blog.youkuaiyun.com/mydsyc/article/details/52710668http://jicki.blog.51cto.com/1323993/1078135/
2017-08-10 14:19:20
977
翻译 awk命令详解
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势#last
2017-07-25 14:57:31
573
翻译 grep命令详解
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正
2017-07-25 11:44:40
928
转载 Linux /etc/passwd /etc/group /etc/shadow 文件的格式说明
/etc/passwd存放账户信息:root:x:0:0:root:/root:/bin/bashjianing:x:1011:100::/home/jianing:/bin/bashusername:password:uid:gid:allname:homedir:shell用户名:密码:用户ID:组ID:用户全名:主目录:登录shell密码:
2017-07-25 10:45:38
304
转载 常见WEB漏洞原理分析
Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用,Web应用已经融入到日常生活中的各个方面:网上购物、网络银行应用、证券股票交易、政府行政审批等等。在这些Web访问中,大多数应用不是静态的网页浏览,而是涉及到服务器侧的动态处理。此时,如果Java、PHP、ASP等程序语言的编程人员的安全意识不足,对程序参数输入等检查不严格等,会导致Web应用安全问题层
2017-07-17 16:35:56
1463
原创 while 死循环
#include #include int main(){ int i=0; while(1) { if(i>0) { printf("i = %d\n",i); }
2017-07-13 14:39:49
523
原创 gdb 常用命令
GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所
2017-07-13 11:23:09
269
原创 gcc 常用命令
一,简介cc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。来自: http://man.linuxde.net/gccgcc命令
2017-07-13 11:04:12
271
原创 memcpy使用
c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。函数原型:void *memcpy(void *dest, const void *src, size_t n);示例1:将s中的字符串复制到字符数组d中。#include #include int mai
2017-07-13 09:57:48
2170
原创 memset使用
memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typed
2017-07-13 09:51:48
1691
转载 const 关键字使用总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码
2017-07-10 13:52:40
213
原创 Static 关键字说明
STATIC1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的
2017-07-10 13:36:48
263
转载 C/C++ 引用介绍
STATIC1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的
2017-07-10 12:48:33
253
转载 C语言 static 解析
一,static全局变量我们知道,一个进程在内存中的布局如图1所示:其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整个生命周期中,.data段和.bss段内的数据时跟整个进程同生共死的,也就是在进程结束之后这些数据才会寿终就寝。当一个进
2017-07-10 11:05:21
175
转载 (int)(*((int*)args));
#include #include #include #include #define NUM_THREADS 8 void *PrintHello(void *args){ int thread_arg; sleep(1); thread_arg = (int)(*((int*)args)); printf(
2017-07-06 14:52:55
1419
转载 ps命令详解
有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在运行。由于一个应用程序可能需要启动多个进程。所以在同等情况下,进程的数 量要比程序多的多。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多
2017-07-05 15:41:47
245
原创 CSMA/CD
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)基带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测)。在传统的共享以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。CSMA/CD应用在 OSI 的第二层数据链路层它的工作
2017-07-05 13:37:22
802
原创 char数组初始化
char str[10]="Hello";char str[10]={'H','e','l','l','o','\0'};char str[10]={'H'};char str[10]={0}; char str[10]="Hello, world.\n"; char str[]="Hello, world.\n";
2017-07-05 10:57:16
2169
转载 结构体的4种初始化方式
#include int main(int argc, const charchar * argv[]) { //定义结构体类型 struct Person { charchar *name; int age; double heigth; }; //初始化的4种
2017-07-05 10:50:05
1160
转载 创建脱离线程 pthread_attr_setdetachstate
关于脱离线程的说明:使用pthread_create()函数创建线程时,函数第二个参数为NULL,则使用线程属性的默认参数,其中非分离属性需要程序退出之前运行pthread_join把各个线程归并到一起。如果想让线程向创建它的线程返回数据,就必须这样做。但是如果既不需要第二个线程向主线程返回信息,也不需要主线程等待它,可以设置分离属性,创建“脱离线程”。 在任何一个时间点上
2017-07-05 09:30:02
1406
转载 pthread_attr_init线程属性
1.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1.名称::pthread_attr_init/pthread_attr_destroy
2017-07-05 09:25:14
273
原创 Pthread定义
POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。数据类型pthread_t:线程IDpthread_attr_t:线程属性操纵函数pthread_create():创建一个
2017-07-05 09:20:37
338
转载 fork()创建子进程步骤、函数用法及常见考点(内附fork()过程图)
http://blog.youkuaiyun.com/yangcs2009/article/details/39267733fork()系统调用函数用法一个现有进程可以调用fork函数创建一个新的进程。#include《unistd.h>pid_t fork(void);返回值:子进程中返回0,父进程中返回子进程的ID,出错返回-1fork函数被调用一次,但返回两次。两次返回的
2017-06-26 15:43:15
763
转载 守护进程 关于setsid() 函数的说明
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用 的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂
2017-06-26 15:08:19
930
转载 sizeof(数组名)和sizeof(指针)
在做这道题时:32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间。因此写段代码测试一下:#include u
2017-06-26 15:06:36
4495
转载 void* 指针、NULL指针、零指针、野指针、悬垂指针
void* 类型指针:通用变体类型指针;可以不经转换,赋给其他指针,函数指针除外;malloc返回的就是void*类型。NULL指针:是一个标准规定的宏定义;#define NULL ((void *) 0) 用来表示空指针常量;零指针:指针值为0,零值指针,没有存储任何内存地址的指针;可以使任意一种指针类型,eg:void * ;int * ;double *;
2017-06-26 14:58:13
495
转载 空指针NULL 与 void指针 要分清
空指针NULL在C语言中,如果一个指针不指向任何数据,我们就称之为空指针,用NULL表示。例如:int *p = NULL;注意区分大小写,null 没有任何特殊含义,只是一个普通的标识符。NULL 是一个宏定义,在stdio.h被定义为:#define NULL ((void *)0)(void *)0表示把数值 0 强制转换为void *类型,最外层的( )把宏
2017-06-26 14:26:57
1114
1
原创 void及void指针含义的深刻解析
void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指
2017-06-26 14:21:25
311
原创 Linux的sleep()和usleep()的使用和区别
让进程暂停执行一段时间函数名: sleep------------------------------------------------------------------------------- 头文件: #include // 在VC中使用带上头文件 #include // 在gcc编译器中,使用的头文件因gcc版本的不同而不同 功
2017-06-26 14:19:21
1979
原创 malloc函数
malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以通过类型转换强制转换为任何其它类型的指针。头文件:#include 或者#include 函数声明void *malloc(size_t size);备注:void* 表示未确定类型
2017-06-26 14:04:28
389
转载 进程间通信的几种方式浅谈
程序员必须让拥有依赖关系的进程集协调,这样才能达到进程的共同目标。可以使用两种技术来达到协调。第一种技术在具有通信依赖关系的两个进程间传递信息。这种技术称做进程间通信(interprocess communication)。第二种技术是同步,当进程间相互具有合作依赖时使用。这两种类型的依赖关系可以同时存在。一般而言,进程有单独的地址空间。我们可以了解下可执行程序被装载到内存后建立的一系列映射等
2017-06-26 13:45:23
727
转载 struct stat结构体简介
在使用这个结构体和方法时,需要引入:struct stat这个结构体是用来描述一个linux系统文件系统中的文件属性的结构。可以有两种方法来获取一个文件的属性:1、通过路径:int stat(const char *path, struct stat *struct_stat);int lstat(const char *path,struct stat *struct
2017-06-26 10:54:48
352
转载 SIGTERM, SIGSEGV, SIGINT, SIGILL, SIGABRT, SIGFPE
http://zh.cppreference.com/w/c/program/SIG_types定义于头文件 #define SIGTERM /*implementation defined*/ #define SIGSEGV /*implementation defined*/
2017-06-26 09:22:10
2236
转载 void及void指针含义的深刻解析
http://blog.youkuaiyun.com/geekcome/article/details/6249151void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoi
2017-06-13 21:00:29
186
转载 pthread_create函数的详细讲解(包括向线程函数传递参数详解)
http://blog.youkuaiyun.com/liangxanhai/article/details/7767430pthread_create是UNIX环境创建线程函数头文件 #include函数声明 int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,v
2017-06-13 13:52:52
1510
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人