摘要:system的共享内存指的是内核指定一块内存区域映射到虚拟地址空间供进程通信使用的机制 1\创建或打开共享内存块函数原型int shmget(key_t key, size_t size, int shmflg) 参数参数1:一个key_t类型的变量.IPC_PRIVATE或者>0的值参数2:要创建
阅读全文
摘要:1\创建或打开消息队列函数原型:int msgget(key_t key, int msgflg)参数第一个参数为ftok方法创建的一个kety_t或者为一个整数值第二个参数为逻辑控制,IPC_CREAT:创建新标识符;IPC_CREAT|IPC_EXCL:创建新标识之前查看是由有已存在的标识符.
阅读全文
摘要:system v ipc对象是靠标识符ID来识别和操作的,具有系统唯一性.意思就是说,该ID是操作系统内的全局变量,只要具有权限,任何进程都可以通过标识符进行进程间的通信.获取标识符ID的函数为int msgget(key_t key, int msgflg),其中参数key会被msgget函数转换
阅读全文
摘要:管道(pipe)是一种文件,可以调用read,write,close等操作文件的接口来操作管道;管道还属于一种独特的文件系统pipefs,其本质是内核维护了一块缓冲区与管道文件相关联,所有对管道文件的操作,都会被内核转换为对这块缓冲区内存的操作. 创建管道成功后,系统会返回2个已经打开的文件描述符,
阅读全文
摘要:线程的返回值当线程退出时,线程可以选择向主线程返回一个值,返回方式一共有4种1\如果要返回int类型,可以使用pthread_exit((int)* return_value);2\使用全局变量返回(这个最简单)3\使用malloc所分配的空间4\直接返回字符串,如pthread_exit("ret
阅读全文
摘要:我们知道进程ID是操作系统调度的最小单位,有时候根据业务的需要,我们会使用到多线程技术,当创建了多个线程时,也会有一个线程ID,那这个线程ID和进程ID有什么不一样吗? 其中,线程组的线程ID是属于NPTL(Native POSIX Thread Library)线程库的范畴,属该线程库调度的标识;
阅读全文
摘要:sigaction函数相对于siganl函数控制信号的发送要更加精确一些,其函数原型为: int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 实验代码: 运行程序后,使用命令:ps -au
阅读全文
摘要:使用该函数可以指定目录生成临时文件,函数原型为 int mkstemp(char *template); 应用举例 执行截图 在当前目录下多出了一个名为"mytmpfile_RzTSGo"的文件,并且该文件被写入了之前预制好的数据. 注意:该函数要求文件名最后6位必须是"XXXXXX", templ
阅读全文
摘要:使用该函数注册的退出函数是在进程正常退出时,才会被调用.这里强调是进程正常退出,使用exit退出或使用main中最后的return语句退出.但如果是因为收到信号signal而导致程序退出,如kill pid,那么atexit所注册的函数将不会被调用.而当进程收到信号时,如果没有注册函数去处理对应的信
阅读全文
摘要:1-->修改板级文件arch/arm/mach-s3c2440/mach-mini2440.c 2-->驱动文件at24c08.c 3-->应用程序 4-->Makefile 当然也可以将驱动文件添加到对应的内核文件中,通过修改对应的KConfig和Makefile来将驱动编译到内核中
阅读全文
摘要:1-->设备的定义平台的所有设备都会在arch\arm\plat-s3c\include\plat\devs.h中进行初始定义 2-->定义设备的结构体设备实体的结构体解析 3-->设备资源平台的所有设备都会在arch\arm\plat-s3cxx\devs.c中进行资源使用定义 4-->平台设备初
阅读全文
摘要:使用arm-linux-gcc编译的可执行文件可能会无法在开发板上执行,并提示:-/bin/sh xxx not found 解决办法: 在主机上使用readelf -d xxx 来查看该程序所需要的动态库,比如 在交叉编译目录你搜索<find -name 'libc.so.6'>,然后将其拷贝到根
阅读全文
摘要:1--->检查是否安装tftp rpm -qa tftp* 2--->安装tftp yum install -y tftp-server 3--->chkconfig --list|grep tftp 4--->vim /etc/xinet.d/tftp 修改server_args = -s 指定目录 disable = no 5--->设置自动运行 chkconfig tftp on ...
阅读全文
摘要:经过多次的修改和实验,终于能够在mini2440开发板上进行各种uboot和kernel的挂载实验了,在此期间学习到了很多知识,也理解了一些知识1->分区uboot和kernel的分区表要一致uboot分区位置:include/configs/mini2440.h kernel分区位置:arch/a
阅读全文
摘要:字符驱动模块charmem.c 功能预定义charmem.h 应用程序charmemapp.c Makefile文件
阅读全文
摘要:#include #include #include #include #include #include #include #include #define MYFIFO "/tmp/myfifo" int main(int argc, char *argv[]) { int fd; char buf_w[50]; fd=open(MYFIF...
阅读全文