Linux系统程序设计
文章平均质量分 61
linux文件、多进程、多线程、网络编程
毅心一意111
这个作者很懒,什么都没留下…
展开
-
c++11 多线程传参问题
* 传递值引用时:可以观察到addr_i_thread与addr_i所表示的地址不一样,因此可以断定,当线程中即使传入引用,其实并不是真实的引用,也是值传递,因为将i又额外的复制了一份存入到不同的地址中,当主线程结束,不会影响子线程* 传递指针时: 可以观察到,当线程传入字符串指针时,addr_buff_thread与addr_buff一致,也就是说两个线程共用一个内存,如果主线程结束,那么子线程就会出现错误* 传递字符串时:可以观察到当传入string引用时,则addr_buff_thread与add原创 2022-08-21 20:51:52 · 523 阅读 · 0 评论 -
c++11 detach()子线程对象生命周期分离
* detach():分离,主线程不与子线程汇合,各自独立自行,主线程结束,子线程也能够运行;* 一旦detach()后,与这个线程关联的thread对象就会失去与这个主线程的关联,此时子线程就会驻留后台运行;* 这个子线程将会被系统运行时库接管,当这个子线程执行完成后,由运行时库负责清理该线程相关的资源(守护线程)* 使用detach将会失去对线程的控制,join与detech不能同时使用原创 2022-08-21 18:23:19 · 1417 阅读 · 1 评论 -
c++11 创建一个线程
整个进程执行的完毕结束的标志是主线程结束;此时,如果其他子线程还没有执行完毕,那么子线程也会被操作系统强行终止,系统抛出异常;良好的程序应该是主线程等待子线程执行完毕后,自己才能退出;原创 2022-08-21 17:44:51 · 376 阅读 · 0 评论 -
Linux系统程序设计——进程
进程介绍进程启动和终止c 程序启动过程内核启动特色例程启动例程在进程的main函数执行之前内核会启动该例程放置在/lib/libc.so.***中编译器在编译时会将启动例程编译进可执行文件中启动例程作用搜集命令行的参数传递给main函数中的argc和argv搜集环境信息构建环境表并传给main函数登记进程的终止函数进程终止正常终止从main函数返回调用exit(标准c库函数)调用_exit或_Exit(系统调用)最后一个线程从其启动例程返回最后一个原创 2022-05-06 13:49:07 · 701 阅读 · 0 评论 -
Linux系统程序设计——文件操作
文件属性文件属性操作函数文件属性查看node 索引节点编号:544365文件类型 :文件类型是’-’,表示这是一个普通文件文件权限:rw-r–r-- 表示文件可读、可写、可执行,文件所归属的用户组可读可执行,其他用户可读可执行硬链接个数:表示a.txt这个文件没有其他的硬链接,因为连接数是1,就是他本身文件属主:表示这个文件所属的用户,这里的意思是a.txt文件被root用户拥有,是第一个root文件属组:表示这个文件所属的用户组,这里表示a.txt文件属于root用户组,是第二个原创 2022-04-19 12:40:23 · 1167 阅读 · 0 评论 -
Linux系统程序设计——文件IO
标准C的IO缓存类型全缓存要求填满整个缓存区后才能进行IO系统调用。对磁盘文件通常使用全缓存访问。行缓存设计一个终端时(例如标准输入和标准输出),使用行缓存行缓存满自动输出碰到换行符自动输出无缓存标准错误流stderr通常是不带缓存区的,这使得错误信息能够尽快显示出来/**************************************************** * Description: example1 行缓存案例: * 1、行缓存满自动输出,"原创 2022-04-11 21:59:40 · 449 阅读 · 0 评论