linux之父自白:为什么我对编程如此上头

上周,我的朋友和我谈论了 Linux 之父 Linus Torvalds 以及他对编程的热爱。
他表示,托瓦兹对编程的痴迷源于创造力、控制感、突破现实约束的能力以及艺术与工程的融合。
我觉得这几点很有趣。

创造力就像玩游戏。
编程就像设定游戏规则,你可以直接看到结果。
这种从零开始的创作过程其实还是蛮吸引人的。
至于控制感,正如你所说,代码的执行完全取决于你。
这种精确执行指令的感觉是相当新的。

突破现实的局限性,我很同意这一点。
通过编程,你可以创造一个不受真实物理定律限制的全新世界。
正如你所说,3 +3 =2 ,这在现实世界中是不可能的,但在编程世界中你可以实现它。

艺术与工程的融合,我也觉得很有趣。
编程不仅仅只是实现功能,还要考虑代码的美观,比如简单性、模块化设计等,这样的结合让编程更有吸引力。

最后,我特别同意创造和体验一个新世界。
通过编程,你可以创造出你想象中的世界,这种感觉真好。
这就是为什么我认为编程确实是一门很酷的知识。

对了,你刚才提到了木屋的例子,我觉得很恰当。
编程就像建造一座木屋。
地基必须扎实,但更重要的是,你必须有创造力,才能让树屋变得独特且有价值。

算了,不说了,你自己想办法就行了。

Linux系统编程——浅谈线程的私有数据

结论:线程私有数据是解决Linux下多线程数据共享问题、避免全局变量带来的线程安全问题的有力工具。

要求:避免多个线程访问同一个全局变量引起的冲突。

创建和注销:
创建:pthread_key_create(&key, echomsg);创建密钥并指定清理函数。

注销:pthread_key_delete(key);释放密钥并且不检查线程使用情况。

设置和接收:
设置:pthread_setspecial(key, &i);关联键和值。

获取:intvalue=(int)pthread_getspecial(key);获取关联值。

应用示例:
Child1 和Child2 线程分别设置独立的私有数据,互不影响。

正在进行的结果分析:
两个线程设置和接收的值是不同的,这证实了线程私有数据的有效性。

摘要:
线程私有数据机制是避免线程安全问题的有效手段,其功能是通过一系列函数来实现的。

【正点原子】I.MX6U嵌入式Linux C应用编程指南--第十五章 本篇总结

我最近刚刚读完这本书,里面确实充满了有用的信息。
第一章涵盖了应用程序编程的基本概念。
我记得当时我正在做一个智能家居项目,我利用这些知识来调用系统接口来控制设备。
感觉非常好用。

第2 章,文件I/O基础知识,这是老生常谈了。
我在公司的时候,写过一个基于open、read、write等系统调用的日志程序。
当时我不明白,但现在我明白了,原来这么简单。

第3 章,深入研究文件I/O,这更有趣。
比如关于文件洞现象,当时我在处理视频,涉及到大文件的操作,所以我必须注意这些细节。

第四章,标准I/O库,我以前经常使用它,比如fgets,它对于读取输入行非常方便。
还有缓冲机制,要根据实际情况选择,比如行缓冲,适合读取文本文件。

第五章,文件和目录属性,这个也很实用。
我之前使用过文件管理功能,该功能使用权限管理和文件类型判断。

第六章,字符串处理,C语言基础。
当时写代码的时候经常会遇到缓冲区溢出的问题。
现在我看到了很多本来可以避免的技术。

第七章,系统信息和系统资源,我在调试程序时经常用到这个,比如监控内存使用情况。

第 8 章,信号,我在对网络进行编程来处理异步事件时经常使用它。

第9 章,进程,我在编写后台服务程序时经常使用它。
Fork 创建子进程并同时处理它们。

第1 0章,进程间通信,我在分布式系统上工作时经常使用这个,例如使用管道或共享内存。

第1 1 章,线程,这个在嵌入式系统中也很常见。
多线程可以提高程序的响应速度。

第1 2 章,线程同步,这个我就不多说了。
这在进行并发编程时非常重要。

第1 3 章,高级I/O,我不太明白,因为我对这些高级技术没有太多经验。

总的来说,这本书确实对我帮助很大,帮助我对嵌入式LinuxC应用编程有了更深入的了解。