linux高级编程
文章平均质量分 82
F.LASH.
嵌入式大白,希望将更好的技术点和完整的项目分享给大家,一起加油,一起进步!
展开
-
linux高级编程之进程线程(西红柿种子.十二)----进程间通信
本期主要分享的是进程间通信的最后两种通信方式:消息队列和共享内存,其中包括ftok,msgget,msgsnd,msgrcv,msgctl,shmget,shmat,shmdt,shmctl等;IPC_EXCL 检测IPC对象是否存在。IPC_SET 设置IPC权限。IPC_CREAT 创建IPC对象。IPC_STAT 获得IPC状态。IPC_RMID 删除共享内存。IPC_RMID:删除共享内存。原创 2023-05-19 08:00:00 · 40 阅读 · 0 评论 -
linux高级编程之进程线程(西红柿种子.七)
本期主要分享的是进程中进程回收以及获得环境变量的相关接口,比如wait,waitpid,getenv,setenv等,能够使得我们更好的使用进程做我们想做的事情!原创 2023-05-13 07:45:00 · 29 阅读 · 0 评论 -
linux高级编程之进程线程(西红柿种子.六)
比如有四个进程,当执行到进程1时,进程1的程序会在0-4g的虚拟空间进行展开运行,由于任务调度微观串行,所以当进程2执行时,进程1会进行保护现场操作,把进程1的数据存放在相应的物理内存地址中;对于同一个虚拟地址,不同的进程但是位于同一个虚拟地址时数据不同的原因是因为他们的在执行自己进程程序时,另一个进程程序会保护现场关闭留出空间供目前的进程进行程序展开执行;父进程返回子进程的PID。进程空间是独立的,每个进程独享(我用的时候别人不能用,物理内存空间独立)0 - 4g虚拟内存空间。PPID:父进程的PID。原创 2023-05-11 09:09:36 · 28 阅读 · 0 评论 -
linux高级编程之进程线程(西红柿种子.十)---线程同步
本文主要分享的是信号量的函数接口,信号量较之锁而言能够实现线程间的同步,因此使用极为广泛,能够使得我们有序的使用资源,以此来实现对资源的分配;第一次调用取随即数列中的第一个值,所以取到的值是不变的;申请信号量(信号量资源数-1),如果资源数为0,则阻塞等待直到。申请资源:资源数-1,如果资源数为0,则等待释放资源后,才能得到资源。根据一个数(1900年到现在的秒数)产生一组随机数列;释放资源:资源数+1。释放信号量(信号量资源数+1),不阻塞。信号量只能被申请、释放、初始化、销毁四种操作。原创 2023-05-20 08:18:04 · 35 阅读 · 0 评论 -
linux高级编程之进程线程(西红柿种子.九)
本文主要分享的是线程间通信的基本概念以及锁的相关函数接口,锁是解决线程间通信时资源竞争的一个重要的方法,主要的函数接口有锁的创建,使用和销毁:ptherad_mutex_init,pthread_mutex_lock,pthread_mutex_unlock,pthread_mutex_destroy等函数接口;原创 2023-05-17 18:55:48 · 32 阅读 · 0 评论 -
linux高级编程之IO操作(西红柿种子.五)
statbuf:存放文件属性空间首地址。pathname:文件路径。通过用户UID获得用户信息。成功返回用户信息结构体指针。成功返回组结构体空间首地址。功能: 获得文件的属性。inode节点是一个标号,可以通过过这个节点找到文件的位置;硬链接(通过几个名字可以同时访问一个空间)ln -s 要连接向的文件 软链接文件。原创 2023-05-08 21:16:20 · 31 阅读 · 0 评论 -
linux高级编程之进程线程(西红柿种子.八)
本期主要介绍线程的相关概念以及线程的相关接口,pthread_create,pthread_exit,pthread_join,pthread_attr_init,pthread_attr_setdetachstate,pthread_attr_destroy等线程从创建到消亡的接口函数;原创 2023-05-12 13:43:14 · 53 阅读 · 0 评论 -
linux高级编程之IO操作(西红柿种子.四)
本文主要介绍的关于目录IO的相关函数接口,比如opendir,readdir,closedir等,也提及了时间的操作接口,能够使得我们自动生成时间戳!原创 2023-05-06 13:15:53 · 26 阅读 · 0 评论 -
linux高级编程之IO操作(西红柿种子.三)
本文主要介绍IO操作的open,read,write等相关操作接口;原创 2023-04-30 08:30:00 · 28 阅读 · 0 评论 -
linux高级编程之IO操作(西红柿种子.二)
gets会去掉从终端接收的\n字符(会将最后一个\n改成\0),gets如果接的字符空间内存的下则无问题,如果超过空间内存大小则会有越界访问的风险,这个也是gets危险的原因。从流中读取nmemb个对象,每个对象size个字节,存放到ptr指针指向的空间中。向流中写入nmemb个对象,每个对象size个字节,在ptr指向的空间中。fgets不会去掉从终端接收的\n字符 (在最后一个\n后面加一个\0)从流中读size个字符,遇到EOF或者\n读取停止。成功返回读取到字符串存放空间的首地址。原创 2023-04-27 08:00:00 · 29 阅读 · 0 评论 -
linux高级编程之IO操作(西红柿种子.一)
IO操作 a 追加只写 文件存在,追加只写打开 文件不存在,创建文件,只写打开。w+ 写读 文件存在,对文件清0,写读打开 文件不存在,创建文件,写读打开。a+ 追加读写 文件存在,追加读写打开 文件不存在,创建文件,读写打开。w 只写 文件存在,对文件清0,只写打开 文件不存在,创建文件,只写打开。原创 2023-04-25 19:40:13 · 72 阅读 · 0 评论