09 2016 档案

Linux Shell编程一
摘要:交互模式 --当Shell收到用户输入命令后,就开始执行这项命令,并把结果显示到屏幕上,结束后Shell又会显示系统提示符,等待用户输入下一条命令。 后台运行 --后台运行的符号为"&",在命令后面加上"&"符号,就可以将程序放到后台运行。例如:"top&" --在后台执行的程序怎么使它恢复到前台来运行呢?执行fg命令,注意当有多个程序在后台的时候,fg只能将最近打开的程序恢复到前台。 --... 阅读全文

posted @ 2016-09-29 14:45 寒魔影 阅读(283) 评论(0) 推荐(0) 编辑

Linux 图形化操作
摘要://Linux图形化操作 #include #include #include #include #include #include /*文件链接时需要加载curses共享库文件*/ int main(int arg, char *args[]) { //开启图形模式 initscr(); //不回显(不在屏幕上显示键盘输入) noecho(); ... 阅读全文

posted @ 2016-09-26 22:56 寒魔影 阅读(808) 评论(0) 推荐(0) 编辑

Linux 字符集转化
摘要:命令行"iconv --list" 查看Linux操作系统支持的字符集 iconv_open 设置字符集转化 --iconv_t iconv_open(const char *tocode, const char *fromcode); --参数tocode目标字符集的字符串 --参数fromcode源字符集的字符串 --函数成功返回描述符,失败返回-1,并且设置errno --... 阅读全文

posted @ 2016-09-26 21:58 寒魔影 阅读(647) 评论(0) 推荐(0) 编辑

Linux Linux程序练习十二(select实现QQ群聊)
摘要://头文件--helper.h #ifndef _vzhang #define _vzhang #ifdef __cplusplus extern "C" { #endif #define MAX_SOCKET_NUM 1024 #define BUF_SIZE 1024 //server create socket int server_socket(int port); //clos... 阅读全文

posted @ 2016-09-25 09:48 寒魔影 阅读(681) 评论(0) 推荐(0) 编辑

Linux 网络编程九(select应用--大并发处理)
摘要://网络编程服务端 /* * 备注:因为客户端代码、辅助方法代码和epoll相同,所以select只展示服务器端代码 */ #include #include #include #include #include #include #include #include //htons()函数头文件 #include //inet_addr()头文件 #include #incl... 阅读全文

posted @ 2016-09-24 20:23 寒魔影 阅读(2451) 评论(0) 推荐(0) 编辑

Linux 网络编程八(epoll应用--大并发处理)
摘要://头文件 pub.h #ifndef _vsucess #define _vsucess #ifdef __cplusplus extern "C" { #endif //服务器创建socket int server_socket(int port); //设置非阻塞 int setnonblock(int st); //接收客户端socket int server_accept(i... 阅读全文

posted @ 2016-09-23 18:26 寒魔影 阅读(2712) 评论(0) 推荐(0) 编辑

Linux 网络编程七(非阻塞socket:epoll--select)
摘要:select,epoll 阅读全文

posted @ 2016-09-22 10:07 寒魔影 阅读(3387) 评论(0) 推荐(0) 编辑

Linux Linux程序练习十一(网络编程大文件发送UDP版)
摘要://网络编程发送端--大文件传输(UDP) #include #include #include #include #include #include #include #include #include int main(int arg, char * args[]) { if (arg 0) { if (sendto(st, buf, ... 阅读全文

posted @ 2016-09-20 10:23 寒魔影 阅读(762) 评论(0) 推荐(0) 编辑

Linux Linux程序练习十(网络编程大文件发送)
摘要://网络编程客户端--大文件传输 #include #include #include #include #include #include #include #include #include int main(int arg,char *args[]) { if(arg0) { //send part of the file ... 阅读全文

posted @ 2016-09-19 22:31 寒魔影 阅读(895) 评论(0) 推荐(0) 编辑

Linux 网络编程六(socket通信UDP版)
摘要://udp接收消息 #include #include #include #include #include #include #include #include #include int main(int arg, char * args[]) { if (arg #include #include #include #include #include... 阅读全文

posted @ 2016-09-19 13:24 寒魔影 阅读(7145) 评论(0) 推荐(0) 编辑

Linux 网络编程五(UDP协议)
摘要:UDP和TCP的对比 --UDP处理的细节比TCP少。 --UDP不能保证消息被传送到目的地。 --UDP不能保证数据包的传递顺序。 --TCP处理UDP不处理的细节。 --TCP是面向连接的协议 --UDP是无连接协议 --TCP保持一个连接 --UDP只是把数据发送出去而已 TCP的优点 --TCP提供以认可的方式显示的创建连接和终止连接。 --TCP保证可靠的,顺序的以及不会重复的数据... 阅读全文

posted @ 2016-09-17 10:52 寒魔影 阅读(792) 评论(0) 推荐(0) 编辑

Linux 网络编程四(socket多线程升级版)
摘要://网络编程--客户端 #include #include #include #include #include #include #include #include #include #include /* 强调:当客户端连接服务器时,服务器会产生一个新的文件描述符(套接字)与客户端交互,这个新的套接字不是服务器端的监听套接字 套接字是全双工的,在一个网络管道中的两... 阅读全文

posted @ 2016-09-16 23:27 寒魔影 阅读(3768) 评论(0) 推荐(0) 编辑

Linux 网络编程三(socket代码详解)
摘要://网络编程客户端 #include #include #include #include #include #include #include #include //htons()函数头文件 #include //inet_addr()头文件 int main(int arg,char *args[]) { int st=socket(AF_INET,SOCK_STRE... 阅读全文

posted @ 2016-09-13 22:54 寒魔影 阅读(980) 评论(0) 推荐(0) 编辑

Linux 网络编程二(Socket创建)
摘要:网络socket基本函数介绍 阅读全文

posted @ 2016-09-13 16:59 寒魔影 阅读(1116) 评论(0) 推荐(0) 编辑

Linux 网络编程一(TCP/IP协议)
摘要:以前我们讲过进程间通信,通过进程间通信可以实现同一台计算机上不同的进程之间通信。 通过网络编程可以实现在网络中的各个计算机之间的通信。 进程能够使用套接字实现和其他进程或者其他计算机通信。 同样的套接字既可以实现进程间通信,也可以实现计算机之间通信。 套接字是通信端点的抽象。 与文件描述符一样,套接字需要使用套接字描述符。 套接字在Linux上也是通过文件实现的,所以传统的write和rea... 阅读全文

posted @ 2016-09-13 16:46 寒魔影 阅读(1006) 评论(0) 推荐(0) 编辑

Linux Linux程序练习九
摘要:题目:利用多线程与有名管道技术,实现两个进程之间发送即时消息,实现聊天功能 思路:关键在于建立两个有名管道,利用多线程技术,进程A中线程1向管道A写数据,进程B中线程2从管道A读数据,进程A线程2从管道B中读数据,进程B中线程1往管道B中写数据。 //利用多线程与有名管道技术,实现两个进程之间发送即 阅读全文

posted @ 2016-09-11 20:00 寒魔影 阅读(616) 评论(0) 推荐(0) 编辑

Linux 进程与线程四(加锁--解锁)
摘要:pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;int pthread_mutex_lock(pthread_mutex_t *mutex);int pthread_mutex_unlock(pthread_mutex_t *mutex);PTHREA 阅读全文

posted @ 2016-09-11 17:51 寒魔影 阅读(11573) 评论(0) 推荐(0) 编辑

Linux 进程与线程三(线程比较--创建线程参数)
摘要:int pthread_equal(pthread_t th1,pthread_t th2); pthread_equal函数比较th1与th2是否为同一线程,由于不可以讲pthread_t数据类型认为是整数,所以也不能用比较整数的方式比较pthread_t。 如果th1与th2相同,函数返回非0值,如果不同函数返回0。 线程属性 --以前调用pthread_create传入的attr参数都... 阅读全文

posted @ 2016-09-11 09:57 寒魔影 阅读(873) 评论(0) 推荐(0) 编辑

Linux 进程与线程二(等待--分离--取消线程)
摘要:int pthread_join(pthread_t thr,void **thr_return); pthread_join函数用于挂起当前线程,直至th指定的线程终止为止。 如果另一个线程返回值不是NULL,则保存在thr_return地址中。 一个线程所使用的内存资源在应用pthread_join调用之前不会被重新分配,所以对于每个线程必须调用一次pthread_join函数(被分离线程除... 阅读全文

posted @ 2016-09-10 22:40 寒魔影 阅读(2107) 评论(0) 推荐(0) 编辑

Linux 进程与线程一(创建-关闭线程)
摘要:进程是一个实体。每一个进程都有他自己的内存地址段(heap,stack等等) 进程是执行中的程序。 程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体。 进程是操作系统中最基本、重要的概念。 线程,又是被称为轻量级进程(Lightweight Process LWP),是程序执行的最小单元。 每一个程序都至少有一个线程,若程序只有一个线程,那么就是程序本身。 单线程的进... 阅读全文

posted @ 2016-09-10 19:09 寒魔影 阅读(22889) 评论(0) 推荐(1) 编辑

Linux 守护进程二(激活守护进程)
摘要://守护进程--读文件 #include #include #include #include #include #include #include #include #include #include "mylog.h" //监听管道 void listenfifo() { //file size int len=0; int fd2=0; ... 阅读全文

posted @ 2016-09-10 17:17 寒魔影 阅读(700) 评论(0) 推荐(0) 编辑

Linux Linux程序练习八
摘要:题目:自己动手实现一个守护进程,当控制台窗口关闭时还可以在后台运行。每隔一秒钟向my.log文件中插入一条记录,记录格式如下:yyyy-mm-dd hh:mi:se 记录内容,其中yyyy为年,mm为月,dd为天,hh为小时,mi为分钟, se为秒。 #ifdef __cplusplus extern "C" { #endif //写日志函数 //path:日志文件名 //msg:日志信... 阅读全文

posted @ 2016-09-08 13:39 寒魔影 阅读(370) 评论(0) 推荐(0) 编辑

Linux共享库 日志方法
摘要:mylog.h mylog.c makefile 阅读全文

posted @ 2016-09-07 23:32 寒魔影 阅读(558) 评论(0) 推荐(0) 编辑

Linux Linux程序练习七
摘要:题目:实现两个程序mysignal、mycontrl,mycontrl给mysignal发送SIGINT信号,控制mysignal是否在屏幕打印“hello”字符串。 //捕捉信号 #include #include #include #include #include #include int flag=0; void catch_sig(int sign) { ... 阅读全文

posted @ 2016-09-07 22:06 寒魔影 阅读(511) 评论(0) 推荐(0) 编辑

Linux Linux程序练习六
摘要:upper.h upper.c test1.c 运行结果 阅读全文

posted @ 2016-09-07 21:16 寒魔影 阅读(399) 评论(0) 推荐(0) 编辑

Linux Linux程序练习五
摘要:题目:编写两个进程a和b,利用共享内存技术,a向共享内存写字符串,b将从共享内存中读到的字符串在屏幕上打印出来。 //创建共享内存区 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #inc 阅读全文

posted @ 2016-09-07 21:14 寒魔影 阅读(419) 评论(0) 推荐(0) 编辑

Linux 守护进程一
摘要:启动守护进程shell脚本 关闭守护进程shell脚本 阅读全文

posted @ 2016-09-07 16:55 寒魔影 阅读(1053) 评论(0) 推荐(0) 编辑

Linux 改进捕捉信号机制(sigaction,sigqueue)
摘要:sigaction函数 sigaction函数的功能是用于改变进程接收到特定信号后的行为。 int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact); 参数 --第一个参数是信号的值,可以为除了SIGKILL及SIGSTOP外的任何一个特定有效的信号(因为这两个信号定义了自己的处理函数,将导致信... 阅读全文

posted @ 2016-09-07 07:37 寒魔影 阅读(4866) 评论(0) 推荐(0) 编辑

Linux 发送信号
摘要:使用kill命令 --在命令行执行kill命令。向指定进程发送信号。 使用kill函数 int kill(pid_t pid,int sig); --参数pid指定一个要杀死的进程,而sig是要发送的信号。 //kill函数发送信号 #include <stdio.h> #include <stdl 阅读全文

posted @ 2016-09-06 21:24 寒魔影 阅读(3469) 评论(0) 推荐(0) 编辑

Linux 信号捕捉
摘要:pause函数 pause函数挂起调用它的进程,直到有任何消息到达。 调用进程必须有能力处理送达的信号,否则信号的默认部署就会发生。 int pause(void); 只有进程捕获到一个信号的时候pause才返回,如果递送到的信号引发了对信号的处理,那么处理工作将在pause返回前执行。 pause总是返回-1,并且将变量errno设置为EINTR。 发送信号和捕获信号是相辅相成的。 每个进... 阅读全文

posted @ 2016-09-06 21:01 寒魔影 阅读(2311) 评论(0) 推荐(0) 编辑

Linux 信号概念
摘要:Linux, 信号,信号中断 阅读全文

posted @ 2016-09-05 17:26 寒魔影 阅读(496) 评论(0) 推荐(0) 编辑

Linux 进程通信(共享内存区)
摘要:shmat,shmget,shmctl 阅读全文

posted @ 2016-09-04 17:38 寒魔影 阅读(3280) 评论(0) 推荐(1) 编辑

Linux 进程通信(有名管道)
摘要:有名管道(FIFO) 有名管道是持久稳定的。 它们存在于文件系统中。 FIFO比无名管道作用更大,因为他们能让无关联的进程之间交换数据。 管道文件一般用于交换数据。 shell命令创建管道 一个shell命令可以建立有名管道 --mkfifo [option] name --mkfifo创建一个名为name的有名管道 --mkfifo fifo1 创建一个有名管道fifo1 --mk... 阅读全文

posted @ 2016-09-01 18:08 寒魔影 阅读(2378) 评论(0) 推荐(0) 编辑

Linux 进程通信(无名管道)
摘要:无名管道 无名管道是半双工的,就是对于一个管道来讲,只能读,或者写。 无名管道只能在相关的,有共同祖先的进程间使用(即一般用户父子进程)。 一个fork或者execve调用创建的子进程继承了父进程的文件描述符。 打开和关闭管道 int pipe(int filedes[2]); 在你从一个管道中读出或者写入数据,这个管道必须存在。 如果成功建立了管道,则会打开两个文件描述符,并把他们的值保存... 阅读全文

posted @ 2016-09-01 14:41 寒魔影 阅读(4157) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示