首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    UNIX环境编程

    man2 用来访问 UNIX 内核提供的服务的系统调用或函数。例如 fork 系统,它从一个现有的进程生成一个新进程。输入 man fork 显示它的手册页。使用系统软件的程序员常常参考这个部分。...UNIX 几乎完全使用文本配置文件定制系统的操作。有大量配置文件,包括网络服务的列表 (/etc/services) 和可用的 shell 列表 (/etc/shells) 等等。...i=0; i<2; i++){ fork(); printf("-"); } return 0; } 注意:输出8个-,而不是6个- 1.fork()系统调用是Unix...Unix下的设备有“块设备”和“字符设备”的概念,所谓块设备,就是以一块一块的数据存取的设备,字符设备是一次存取一个字符的设备。磁盘、内存都是块设备,字符设备如键盘和串口。

    1.4K20

    编程艺术

    vid=wxv_1252988756890648579&format_id=10002&support_redirect=0&mmversion=false 看完RTOS的书之后,最近我又找了一本书关于《编程艺术...了解编程之美。...当程序无法自然地使用序列化、协议形式的借口是,应该尽可能多的编程元素组织为一套定义好良好的API。至少可以通过链接调用程序或者可以根据不用任务的需求粘合使用不用的接口。...表示原则(把知识叠入数据以求逻辑质朴而健壮) 数据要比编程逻辑更容易驾驭,所以,如果要在复杂数据和复杂代码中选择一个,宁愿选择前者。在设计中,应该主动将代码的复杂度转移到数据之中去。...经济原则(宁花机器一分,不花程序员一秒) 通俗的说,教会机器如何做更多低层次的编程工作。

    50940

    「译」编程艺术

    自古以来,我们都对编程有一个很深误解的想法,即编程活动纯粹是技术型的,本质上说完全正确,就像大家对数学和物理的认知一样。计算机的计算是这样的,会有一个确切的结果,但是编程不是的。...我有一位艺术家和一位工程师作为父母,并且从小时候就在我的生活中获得了这些影响力,我很快就意识到编程结合了两全其美。它是建立在逻辑之上的艺术。...从那时起,我的主要和强烈的编程动机就是“无中生有”创造事物的能力,通过代码将创意带入生活。 编程艺术 我将编程视为一种艺术形式,但您知道:并非所有的艺术家都是一样的。...真正的艺术家是不同的。他们都能去创造新东西,他们为未来带来新的标准,他们把现在的环境「变」得更好,他们不恐惧危机。「复制者」会试图让他们失望,说 「如果你可以使用X或Y,为什么要创造新的东西」?...这就是具有编程艺术人的一个真实想法,他们认为这是多么有意思的事情,这样的生活才会给自己带来意想不到的惊喜。

    49810

    并发编程艺术

    原子性 在本文中,原子性不是重点,它将作为并发编程中需要考虑的一部分进行介绍。...说到原子性的时候,大家应该都能想到 long 和 double,它们的值需要占用 64 位的内存空间,Java 编程语言规范中提到,对于 64 位的值的写入,可以分为两个 32 位的操作进行写入。...Java 编程语言规范同样提到,鼓励 JVM 的开发者能保证 64 位值操作的原子性,也鼓励使用者尽量使用 volatile 或使用正确的同步方式。关键词是”鼓励“。...Java 对于并发的规范约束 并发问题使得我们的代码有可能会产生各种各样的执行结果,显然这是我们不能接受的,所以 Java 编程语言规范需要规定一些基本规则,JVM 实现者会在这些规则的约束下来实现 JVM...小结 之前看过 Java8 语言规范《深入分析 java 8 编程语言规范:Threads and Locks》,本文中的很多知识是和它相关的,不过那篇直译的文章的可读性差了些,希望本文能给读者带来更多的收获

    49420

    并发编程艺术

    原子性 在本文中,原子性不是重点,它将作为并发编程中需要考虑的一部分进行介绍。...说到原子性的时候,大家应该都能想到 long 和 double,它们的值需要占用 64 位的内存空间,Java 编程语言规范中提到,对于 64 位的值的写入,可以分为两个 32 位的操作进行写入。...Java 编程语言规范同样提到,鼓励 JVM 的开发者能保证 64 位值操作的原子性,也鼓励使用者尽量使用 volatile 或使用正确的同步方式。关键词是”鼓励“。...Java 对于并发的规范约束 并发问题使得我们的代码有可能会产生各种各样的执行结果,显然这是我们不能接受的,所以 Java 编程语言规范需要规定一些基本规则,JVM 实现者会在这些规则的约束下来实现 JVM...小结 之前看过 Java8 语言规范《深入分析 java 8 编程语言规范:Threads and Locks》,本文中的很多知识是和它相关的,不过那篇直译的文章的可读性差了些,希望本文能给读者带来更多的收获

    45640

    Unix网络编程之IO模型

    数据传输交换媒介 Unix操作系统结构图 ? ?...概要说明 用户空间: 将上述用户级别或者是unix编程的应用程序的部分称为用户空间,我们可以通过启动进程来调用内核命令完成从硬件设备读取或写入等操作 系统内核: 是直接与计算机硬件打交道的应用程序级别,...在计算机相关的书籍中也称为操作系统,可以通过操作系统级别提供的一些组件来帮助用户进程与计算机硬件完成通信交互的操作,可以称为一个中转站 硬件: 对于网络编程而言,与关联的硬件设备就是网络接口控制器等设备...IO模型演进 基于上述的数据传输以及IO阻塞操作可知,网络编程需要读取网络传输过来的数据需要先经过系统内核再到用户空间,期间需要系统内核等待数据准备完成以及数据复制到用户空间两个步骤,同时为了简化概念,...系统支持此IO模型设计并不确定 目前大多数Unix/Linux服务器都是基于IO复用模型进行优化改进,即对select/poll方法进行增强优化 IO关键术语 同步与异步的定义 同步:发起一个fn的调用

    71140

    读《R语言编程艺术

    其实这样的书可以罗列出好几本: ggplot2 数据分析与图形艺术(ggplot2 Elegant Graphics for Data Analysis) R语言实战(RinAction) R语言核心技术手册...(RinaNutshell) R语言数据科学(R for data science) 高级R语言编程指南( Advanced R) 这些书每看完一本,都会对R的特性有进一步的理解。...《R语言编程艺术》这本书是买的比较早的了,之前也泛泛地翻过,主要是对R的特点有个相对系统的理解。...我觉得第七章是这本书的核心,这也许和目前我的水平有关:开始关注函数的实现与组织。这一章探讨了编程中的控制结构以及函数的实现,环境作用域等,函数编程的基本概念。...在这一章中,我们可以体会到用R语言和会编程其实是两件事。 像编程这样的书籍,读一遍是远不够的,因为我们系要理解的不是人类语言的部分,而是非人的代码部分,不仅要理解更是要能运用。

    96110

    深度思考编程艺术

    编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋。...有人问我,提高编程水平最有效的办法是什么?我想了很久,终于发现最有效的办法,其实是反反复复地修改和推敲代码。 在IU的时候,由于Dan Friedman的严格教导,我们以写出冗长复杂的代码为耻。...有些人喜欢炫耀自己写了多少多少万行的代码,仿佛代码的数量是衡量编程水平的标准。然而,如果你总是匆匆写出代码,却从来不回头去推敲,修改和提炼,其实是不可能提高编程水平的。...我觉得同样的理论适用于编程。好的程序员,他们删掉的代码,比留下来的还要多很多。如果你看见一个人写了很多代码,却没有删掉多少,那他的代码一定有很多垃圾。 就像文学作品一样,代码是不可能一蹴而就的。...有些人听说“函数式编程”是个好东西,也不理解它的真正含义,就在代码里大量使用嵌套的函数。

    49880
    领券