当前搜索:

【github myLocker】select监听多个fd,互斥锁保护终端交互

select监听多个fdselect用于多个fd的管理,检测哪个fd可读、可写,如果可读则接收消息(读),如果可写则输出消息(写)。 相关的函数:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *e...
阅读(304) 评论(0)

【github myLocker】线程切换调试,读写指针修改文件,socket 阻塞设置

线程切换调试gdb查看帮助:help(gdb) help List of classes of commands:aliases -- Aliases of other commands breakpoints -- Making program stop at certain points da...
阅读(325) 评论(0)

【github myLocker】线程返回值,重复引用头文件,二进制文件I/O

线程返回值子线程使用pthread_exit()向调用线程返回数值,函数原型:void pthread_exit(void *retval); 调用线程使用函数pthread_join()的第二个参数void **接收返回值。函数原型:int pthread_join(pthread_t thr...
阅读(398) 评论(0)

SDL 加载显示JPEG图片

在《 SDL点、线、面及图像加载 》一文中自己用SDL显示JPEG失败,现在有了解决方案。 关键函数: SDL_rwops.h:extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFile(const char *file, const char *mo...
阅读(1058) 评论(0)

linux 静态库与共享库

本文笔记学习自《Professional Assembly Language》 静态库当我们将不同的函数写在不同的文件中,如果主程序调用这些函数,就需要相应的目标文件才能生成可执行文件。目标文件很多的话,不便于管理。我们可以将目标文件整合到一个存档文件中,编译器从存档文件挑选出需要的目标文件,这样...
阅读(231) 评论(0)

AT&T 内联汇编

本文大部分内容学习自《Professional Assembly Language》内联汇编系统调用的参数存于EBX,ECX,EDX,ESI,EDI,EBP. 返回值存放在EAX寄存器中。 内联汇编(inline assembly)即在高级语言(C,C++)中加入汇编内容进行编码。 在高级语言...
阅读(212) 评论(0)

SDL应用之三种字库

SFont 库sfont用大小写英文字母和符号进行内容显示,资源即是字体图片。 sfont下载:http://www.linux-games.com/sfont 我下载SFont 2.03后,解压并make,产生了许多的文件,其中包括三个SFont的测试文件,下面是SFontTest3的效果:...
阅读(594) 评论(0)

SDL点、线、面及图像加载

SDL画图系列之点,线,面点SDL库并没有提供直接画点的函数。不过在开发文档中提供了一个在任意视频模式下画出一个像素点的例子。我们可以写自己的画点函数。#include <stdio.h> #include <stdlib.h> #include <SDL.h>...
阅读(754) 评论(0)

SDL简单动画

动画是利用人类的视觉特点被创造出来的艺术品。图像在不同的时间和位置出现可以产生一定的视觉特效。SDL程序可以制作动画。想要制作出动画的效果,就需要把握好单位时间内出现的图片数量这一个因素。一般来说,一秒24帧可以得到流畅的动画场景。那么两张图像的时间间隔保持约为41666 microseconds...
阅读(701) 评论(4)

linux图形编程之SDL

SDL startSDL是编写跨平台游戏和多媒体应用的支持库,包含了对图形、声音、游戏杆、线程等支持,内容丰富、应用广泛。 ubuntu15.04上安装SDL: Source Code在 http://www.libsdl.org/download-1.2.php上,下载SDL-1.2.15....
阅读(2090) 评论(0)

进程间的通信

信号信号是软件中断的模拟,可以在人格时候发给进程,如果进程处于未执行状态,该信号就由内核保存,直到进程恢复执行再传递给它。 SIGKILL和SEGSTOP是应用程序无法捕捉和忽略的。 几个常用的快捷键和信号: ctrl + C —— SIGINT 中断信号 ctrl + \ —— SIGQ...
阅读(213) 评论(0)

unix环境编程练习 (2)

系统调用系统调用是由操作系统核心提供,运行于核心态;普通函数调用由库函数或者用户自定义,处于用户态。那些标准函数都是由系统调用完成的。 查看系统调用的接口:[edemon@CentOS ~]$ man 2 syscalls进程不能访问内核,系统调用则是接口,由他们告诉内核进程的请求是什么。 错误...
阅读(469) 评论(0)

杂记 (6) —— vim, gcc, gdb, man

vi vistual block缩进选中vistual block, shift + > or <gdb无法调试最新gcc编译的程序$ gcc -g -o fcopy fcopy.c $ gdb fcopy GNU gdb (GDB) Red Hat Enterprise Linux ...
阅读(359) 评论(0)

linux C —— 文件操作函数

chmodint chmod(const char *path, mode_t mode) 将文件read的文件权限变成所有者有读写权限,其他用户只有读的权限。这和shell指令中的chmod有相同的功效。#include <stdio.h> #include <stdlib....
阅读(2424) 评论(0)

makefile学习 (2) —— autotools生成makefile

autotools生成makefile利用autotools系列工具可以快速生成makefile,我们输入目标文件,依赖文件,文件目录等信息即可。 我们需要保证有这些工具:aclocal, autoscan, autoconf, autoconf, autoheader, automake. ...
阅读(323) 评论(0)

makefile学习 (1)

学习自《跟我一起写Makefile》,《linux网络编程》 编译和链接Uinx下编译产生的.o文件是中间代码文件,object file. 只要源文件代码正确,那么我们就可以编译出相应的object file。到了链接阶段(链接函数和全局变量),链接器寻找object file,如果中间代码文...
阅读(605) 评论(0)

简单的多线程数据传输

说明为创建一份小型的工程代码,自己想出一个简单的数据传输任务。 主进程创建四个线程,st1,st2,st3,rt,让前三个线程向最后一个线程灌包,最后一个线程接收数据包。 目的IP: 10.21.100.152 目的端口:9001 各个进程被创建后立即进行相应的工作,灌包或者收包。rt接收...
阅读(1274) 评论(0)

进程通信之读写锁

读写锁读写锁的分配规则 1. 没有线程持有读写锁进行写,任意数量的线程可以持有该读写锁用于读 2. 只有没有线程持有给定的读写锁用于读或者写的时候,才能分配读写锁用于写。 如果修改数据频繁,那么可以考虑用读写锁替代互斥锁。 获取与释放 如果对应的读写锁已由某个写入者持有,那么阻塞pthre...
阅读(422) 评论(0)

unix环境编程练习 (1)

函数练习1.对mmap映射地址操作mmap(), fstat()mmap(): 将文件和设备空间映射到内存中,内存操作比磁盘更快。映射成功返回内存地址,是被返回-1.之后可以直接对映射的地址进行操作。 fstat()获取文件的状态。#include <stdio.h> #includ...
阅读(725) 评论(0)

linux C —— gdb调试、简单Makefile

gcc可以编译c, c++, object-c, java等众多的语言程序 g++则是专注于C和C++。 GDB 调试器是一个功能强大的工具,它可以做很多的调试工作,如断点,单步跟踪等。 相关命令: GDB命令 格式 含义 简写 list List[开始,结束] 列...
阅读(1555) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 37万+
    积分: 9440
    排名: 2419
    我的链接
    最新评论