text: 二、野指针”是如何产生的？如何避免“野指针”？
  管道分为无名管道和有名管道。
  无名管道是一种半双工的通信方式，数据只能单向流动，而且只能在具有亲缘关系的进程间使用，进程的亲缘关系一般指的是父子关系。无名管道一般用于两个不同进程之间的通信。
  当一个进程创建了一个管道，并调用fork创建自己的一个子进程后，父进程关闭读管道端，子进程关闭写管道端,，这样提供了两个进程之间数据流动的一种方式。
  有名管道也是一种半双工的通信方式，但是它允许无亲缘关系进程间的通信。
  它提供一个路径名与之关联，以FIFO的文件形式存在于文件系统中。这样，即使与FIFO的创建进程不存在亲缘关系的进程，只要可以访问该路径，就能够彼此通过FIFO相互通信（能够访问该路径的进程以及FIFO的创建进程之间），因此，通过FIFO不相关的进程也能交换数据。
  只能创建在它的进程以及其有亲缘关系的进程之间;
  优点：可以实现任意关系的进程间的通信；
  长期存于系统中，使用不当容易出错；
  信号量是一个计数器，可以用来控制多个线程对共享资源的访问。它不是用于交换大批数据,而用于多线程之间的同步，它常作为一种锁机制,防止某进程在访问资源时其它进程也访问该资源，因此,主要作为进程间以及同一个进程内不同线程之间的同步手段。
  优点：可以同步进程。
  消息队列是消息的链表，存放在内核中并由消息队列标识符标识，消息队列克服了信号传递信息少，管道只能承载无格式字节流以及缓冲区大小受限等特点。
  消息队列是UNIX下不同进程之间可实现共享资源的一种机制，UNIX允许不同进程将格式化的数据流以消息队列形式发送给任意进程，对消息队列具有操作权限的进程都可以使用msget完成对消息队列的控制，通过使用消息类型，进程可以按任何顺序读信息，或为消息安排优先级顺序。
  缺点：信息的复制需要额外消耗CPU的时间，不适宜于信息量大或操作频繁的场合。
  共享内存是映射一段能被其他进程所访问的内存，这段共享内存由一个进程创建，但多个进程都可以访问，共享内存是最快的IPC(进程间通信)方式,它是针对其它进程间通信方式运行效率低而专门设计的，它往往与其他通信机制，如信号量,配合使用，进而实现进程间的同步与通信。
  共享内存是以传输数据为目的。
  共享内存是所有进程间通信速度最快的。
  优点：使用共享内存进行进程间的通信非常方便，而且函数的接口也简单，数据的共享使进程间的数据不用传送，而是直接访问内存，加快了程序的效率。同时，它也不像无名管道那样要求通信的进程有一定的父子关系。
  通信是通过将共无法实现享空间缓冲区直接附加到进程的虚拟地址空间中实现。
  利用内存缓冲区直接交换信息，内存的实体存在于计算机中，只能让同一个计算机系统中的诸多进程共享，不方便多个计算机网络通信。
  共享内存没有提供同步的机制，这使得我们在使用共享内存进行进程间通信时，往往要借助其他的手段来进行进程间的同步工作。
  （1）声明指针变量时没有被初始化。解决办法：声明指针时初始化，可以是具体的地址值，也可让它指向NULL。
  （2）指针p被free或者delete后，没有设置为NULL。解决办法：指针指向的内存空间被释放后指针应该指向NULL。
  （3）操作指针时超越了变量的作用范围。解决办法：在变量的作用域结束前释放掉变量的地址空间并且让指针指向NULL。
  注意：“野指针”的解决方法也是编程规范的基本原则，平时使用指针时一定要避免产生“野指针”，在使用指针前一定要检验指针的合法性。
  浅析嵌入式视觉系统，嵌入式视觉系统面临怎样的挑战？
  嵌入式究竟是软件还是硬件？嵌入式硬件和嵌入式软件有什么区别？
  加密芯片的原理是什么？芯片加密后还能不能再次使用？
  嵌入式中的ARM内核和架构是什么意思？