分类: LINUX
2009-04-06 01:30:00
TEMPFILE=.tempfile
是正确的;但是这样写:
TEMPFILE = .tempfile
就是错误的。
Gimp
gnome-screenshot
gnome-panel-screenshot
ImageMagick套件的import
xwd
这些工具中,Gimp功能强大,适合截图之后需要进行处理的场合;gnome系列的两款比较简易,适合要求不高的快速截图;ImageMagick套件的import非常适合在控制台下使用;xwd的优势是X-WINDOW自带,无需额外安装。
typedef struct {
raw_spinlock_t raw_lock;
} spinlock_t;
其中raw_spinlock_t定义为:
typedef struct {
volatile int lock;
} raw_spinlock_t;
在上述调用轨迹中,___raw_spin_lock_asm()才会真正修改spinlock.raw_lock.lock。仅使用了
spinlock.raw_lock.lock的最低位来表示spinlock的状态,当spinlock.raw_lock.lock的最低位为1时,
表示已上锁,当spinlock.raw_lock.lock的最低位为0时,表示未上锁。在___raw_spin_lock_asm()中,测试和设
置spinlock.raw_lock.lock最低位的操作并不是原子操作,之所以能保证spinlock的原子性,是因为
___raw_spin_lock_asm()调用了更低层次上的两个函数:_get_core_lock()和_put_core_lock()。这两
个函数操作一个定义在L2存储器中的变量corelock,corelock的类型为:
struct corelock_slot {
int lock;
};
函数_get_core_lock()在corelock上的操作是原子操作,因为它使用了Blackfin处理器的原子操作指令TESTSET来测试并设置corelock。
归纳起来,可以这样讲:spinlock可以用来保证操作的原子性,但是spinlock实际上是由更为底层的原子变量和原子指令保护的。
gs -sDEVICE=x11 yourpsfile.ps
name=”dummy test”
而当要引用变量name的值,比如用于字符串比较时,应该这样写:
if [[ $name == "stupid" ]]
then
…
fi
./some.sh x y whateverelse
那么,在some.sh中$#的值是3,而不是我们通常理解的4。
echo “my home is $HOME”
执行的结果是:
my home is /root
因为$HOME展开成了我的家目录/root。而如果使用单引号:
echo ‘my home is $HOME’
执行的结果是:
my home is $HOME
因为单引号不作展开,因此会原样输出。
let i++
let i=i+1
断不可像系统级语言那样直接进行算术运算。
while [[ 1 ]]
do
echo ’shl’
sleep 1s
done
如果写成单行,必须加入分号分隔各个子句:
while [[ 1 ]] ; do echo “shl”; sleep 1s; done
不加分号的话shell会报syntax error错。