sleep_on用于进程休眠,原型如下:
void sleep_on(struct task_struct **p)
当进程访问某个互斥资源时,如果资源被另外进程占用,当前进程就需要休眠。
假设资源的结构如下:
struct res
{
....
struct task_struct *wait;
}
其实我们参考下文件系统的i节点就会发现,i节点也是一种资源,它的结构体中就有一...
int cnt = 0;
while(1) {
++cnt;
ptr = (char *)malloc(1024*1024*128);
if(ptr == NULL) {
printf("%s\n", "is null");
break;
}
}
printf("%d\n", cnt);
这个程序会有怎样的输出呢?...
题目:实现linux C下常用的字符串操作函数
题目分析:
一、面试中可能经常遇到这样的问题:比如strcpy、memcpy、strstr
二、参考了linux 内核代码,对linux大神表示感谢,代码写得相当精致,这里拿来与大家分享吧
算法实现:
/*
* linux/lib/string.c
*
* Copyright (C) 1991, 1992 Lin...
一、编译环境的准备 yum install gcc yum install gcc-c++ libstdc++-devel yum install zlib-devel二、源码包准备wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gzwget http://memcached.googlecode.com/files/me...
Hibernate实体映射文件多对多等关系简单应用技巧,看了绝对觉得很简单。多对一,一对多中的column的名字自己取,但是对应的两个关系的两个column必须一样;
一般在多的一方,把属性名+Id当成column值,一对多 一方也使用这个column,这样就可以了;
多对多中,tables 是多对多的中间表一般命名中包括两个表名。 key中的column值得是集合外键,指的是引用当前自己表的外键,本对象+Id。 many-to-many指的是引用对方的外键,一般关联对象名+Id;...
上篇文章讨论了双向关联的一对一映射,用了两个章节,主要是从主键和外键两种关联映射展开详细讨论,双向关联的映射需要在两个映射文件中分别添加相互的对应关系,斌刚在相应的类中添加对应的关联类的属性,这样在一端加载时才能加载到另一端的对象。关联中常用的主要有多对一、一对一、一对多和多对多,我们已经讨论了两种映射关系...
举例说:脚本名称叫test.sh 入参三个: 1 2 3运行test.sh 1 2
3后$*为"1 2 3"(一起被引号包住)$@为"1" "2" "3"(分别被包住)$#为3(参数数量)如脚本:#!/bin/shfor loop in
"$*" do echo $loop done输出循环一...
TOPNAME 显示linux任务语法 top -hv | -abcHimMsS -d
delay -n iterations -p pid [, pid
...]描述top程序提供了系统实时信息,显示系统的总体信息和一组由内核管理的任务,系统总体信息的类型,和任务列表上类型,顺序和大小信息,都可以...
VI 有2个模式.我自己定义的1. 命令模式,一开始进去的模式。一些指定的键盘输入会产生不同的效果2.
输入模式,在命令模式下输入冒号(:) 就可以进入输入模式。按Esc键即可退出命令模式。命令模式用键盘的一些制定的键可以完成一些操作(经常用到的),如下:i,I
(顾名思义:insert插入)。小写...