51CTO博客开发
以下程序是一个信息编码的程序,阅读其encode部分,并补全其decode部分 最后运行程序,会打印出的一句话。这句话就是我们要求的答案。 注意!这句话是用GBK编码的! 答案请复制粘贴, 不要手动输入 每次重新登录时请重新答题。 #include <stdio.h> #include&n
一个百度的面试题:给一个二进制字符串str(即只包含0和1的字符),找到其中连续最长0出现的位置。 #include <string.h>#include <stdio.h> int getLongestZeroPos(char *str, char **start, char **en
今天面试问了一道Shell题,答的不是很好。回来查了一下找到正确答案。 假定某个目录下有若干日志文件,文件名是log.2011mmddhhmmss(mmddhhmmss为任意的时间戳),更改成log.2012mmddhhmmss。 这里必然用到正则表达式,首先想到一个Perl的实现 #!/usr/bin/perl if ($#ARGV != 0
@ISA: Within each package a special array called @ISA tells Perl where else to look for a method if it can't find the method in that package. This is how Perl implements inheritance. Each
1. 概念 当从一个fd读,写到另一个fd时,可以在下列形式的循环中使用阻塞I/0。 while((n = read(STDIN_FILENO, buf, BUFSIZ)) > 0) if (write(STDOUT_FILENO, buf, n) != n) exit(1); 但是如果必须从两个fd中读,如果仍然
1. 包 (1).将数据和函数包装到单独的命名空间中称为封装(encapsulation)。Perl中的包相当于C++中的命名空间,包的作用域是从包的声明到包含在最内层的块,包中的所有变量都有一个单独的符号表,同一包名下使用变量可以省略前缀。缺省包名的包也称main包。要引用其他包的变量或子程序要给出包名的前缀(变量不能是my或local的)。(当前包——ma
符号引用 一般来说,类似$$var的结构表示,$var是一个引用变量,而且程序员希望该表达式能够返回$var所指向的值。 假如$var不是引用变量的话会出现什么情况呢?Perl并不是断然打印出错误信息,而是尝试检查$var的值是否为一字符串。如果是,Perl将以该字符串作为正规的变量名与这个变量重新加以组合!考虑下面的例子: #!/usr/bin/perl $
概念 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统中大多数服务和系统任务都是通过守护进程实现的。例如,作业规划进程crond、打印进程lqd、nfsd、lockd、rpciod(这三
pthread线程和信号 所有的异步信号发到整个进程的所有线程(异步信号如kill, lwp_kill, sigsend, kill等调用产生的都是,异步信号也称为中断),而且所有线程共享信号的处理行为(即sigaction的设置,对于同一信号的设置,某一线程的更改会影响到所有线程)。但每个线程可以有自己的mask来阻止信号的发送,所以可以通过线程对mas
线程私有数据是存储和查询与某个线程相关的数据的一种机制。把这种数据称为线程私有/特定数据的原因是希望每个线程可以独立地访问数据副本而无需担心数据同步问题。 设计线程私有数据接口的原因是:(1).线程ID不能保证是小而连续的整数。例如上一章的程序threadid得到的结果: main thread: pid 9508 tid 1
1.互斥量 当多个控制线程共享相同的内存时,需要确保每一个线程看到一致数据视图。如果不存在读取数据或者所有数据只读时不会存在一致性问题。如果某个线程正在修改变量而其他线程也可以读取或者修改这个变量的时候就需要对这些线程进行同步。在变量修改多于一个存储器访问周期时可能出现不一致的错误。(例如需要写的十一个长类型,需要多次写入内存。而写之间如果有其他线程读取就会出现同时读取一些修改过和没
原文地址:http://coolshell.cn/articles/656.html 可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所 有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表
1.线程实现 线程是在进程的基础上进一步的抽象,也就是说一个进程分为两个部分:线程集合和资源集合。线程是进程中的一个动态对象,它应该是一组独立的指令流,进程中的所有线程将共享进程里的资源。但是线程应该有自己的私有对象:比如程序计数器、堆栈和寄存器上下文。 线程分为三种类型: (1).内核线程: 它的创建和撤
一、core dump1.何谓 core dump? 在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料,线圈就叫作 core ,用线圈做的内存就叫作core memory。如今,半导体工业澎勃发展,已经没有人用core memory 了,不过,在许多情况下,人们还是把记忆体叫作core 。 我们在开发(或使用)一个程序时,最怕的就是程序
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号