小编Dan*_*iel的帖子

如何在bash中使用csh脚本来设置环境

我们在Solaris上运行Oracle,默认情况下shell是csh.所以登录脚本也在csh中设置oracle_home,oracle_sid.但是我不喜欢csh而且想用bash来完成我的工作.那么如何在bash中获取csh登录脚本呢?

例如,以下是.cshrc文件中的内容.当使用bash时,我想使用这些变量.一种方法是再次复制变量并使用bash命令,例如export ORACLE_SID = TEST.但这样做需要我们维护两份文件.当我们更改数据库名称或升级数据库时,我需要单独维护bash登录文件.只是使用像这样的东西真好

在bash中使用.cshr,但它不起作用.

setenv ORACLE_SID TEST
setenv ORACLE_HOME /oracle/TEST/home/products/10204
setenv EPC_DISABLED TRUE
setenv MANPATH /usr/local/man:/usr/share/man
setenv EDITOR vi
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/sfw/lib/64
setenv NLS_LANG AMERICAN_AMERICA.UTF8
setenv NLS_DATE_FORMAT "DD-MON-RR"

bash csh

18
推荐指数
2
解决办法
5万
查看次数

在pmap的结果中堆VS anon内存

以下是结果在Solaris上运行后,它显示有两个堆,但在我的理解,一个过程,只有一个堆这是一个大的连续内存,并且可以通过BRK进行管理,以扩大或缩小规模.对于anon内存,进程可以有许多anon内存,可以由mmap/munmap管理.我的理解是否正确?或者我错误地读了pmap的结果?

sol9 #pmap -sx pgrep testprog

... 00022000 3960 3960 3960 - 8K rwx-- [堆]

00400000 131072 131072 131072 - 4M rwx-- [堆]

...... FF390000 8 8 - - 8K rx-- libc_psr.so.1

FF3B0000 8 8 8 - 8K rwx-- [匿名]

...


总Kb 135968 135944 135112 -

heap solaris

6
推荐指数
1
解决办法
4632
查看次数

mysql innodb:innodb_flush_method

在以下链接中

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_flush_method

它说:这个变量的不同值可以对InnoDB性能产生显着影响.例如,在InnoDB数据和日志文件位于SAN上的某些系统上,已发现将innodb_flush_method设置为O_DIRECT会使简单SELECT语句的性能降低三倍.

为什么O_DIRECT会降低select语句的速度?

mysql innodb

6
推荐指数
1
解决办法
1万
查看次数

C语言中的宏(#define)

我正在阅读囤积内存分配器的源代码,并在gnuwrapper.cpp的文件中,有以下代码

#define CUSTOM_MALLOC(x)     CUSTOM_PREFIX(malloc)(x)  
Run Code Online (Sandbox Code Playgroud)

这是什么意思CUSTOM_PREFIX(malloc)(x)?是 CUSTOM_PREFIX一个功能?但作为一个功能,它没有在任何地方定义.如果它是可变的,那么我们如何才能使用变量var(malloc)(x)

更多代码:

#ifndef __GNUC__
#error "This file requires the GNU compiler."
#endif

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>


#ifndef CUSTOM_PREFIX   ==> here looks like it's a variable, so if it doesn't define, then define here.
#define CUSTOM_PREFIX
#endif

#define CUSTOM_MALLOC(x)     CUSTOM_PREFIX(malloc)(x)    ===> what's the meaning of this?
#define CUSTOM_FREE(x)       CUSTOM_PREFIX(free)(x)
#define CUSTOM_REALLOC(x,y)  CUSTOM_PREFIX(realloc)(x,y)
#define CUSTOM_MEMALIGN(x,y) CUSTOM_PREFIX(memalign)(x,y)
Run Code Online (Sandbox Code Playgroud)

c macros c-preprocessor

4
推荐指数
1
解决办法
890
查看次数

fcntl与参数F_DUPFD的目的是什么

我跟踪了一个oracle进程,发现它首先打开一个文件/etc/netconfig作为文件句柄11,然后256通过调用fcntl参数复制它F_DUPFD,然后close是原始文件句柄11.后来它使用文件句柄读取256.那么复制文件句柄有什么意义呢?为什么不只是处理原始文件句柄?

12931:   0.0006 open("/etc/netconfig", O_RDONLY|O_LARGEFILE)    = 11
12931:   0.0002 fcntl(11, F_DUPFD, 0x00000100)                  = 256
12931:   0.0001 close(11)                                       = 0
12931:   0.0002 read(256, " # p r a g m a   i d e n".., 1024)   = 1024
12931:   0.0003 read(256, " t s           t p i _ c".., 1024)   = 215
12931:   0.0002 read(256, 0x106957054, 1024)                    = 0
12931:   0.0001 lseek(256, 0, SEEK_SET)                         = …
Run Code Online (Sandbox Code Playgroud)

fcntl

2
推荐指数
2
解决办法
2516
查看次数

mmap会使用用户cpu而不是整个sys cpu吗?(Solaris)上

当使用mmap分配一些匿名mem时,我们经常将起始地址设置为0/null,因此mmap将自己计算出起始地址.并且为了获得起始地址,它会工作以为整个虚拟存储空间找到一个可以分配mem的chuck的空洞.我想这是用户cpu而不是sys cpu计算的.如果虚拟内存是碎片化的,那么找到起始地址的时间会使用更多的用户cpu,是我理解正确的

cpu solaris mmap

1
推荐指数
1
解决办法
235
查看次数

标签 统计

solaris ×2

bash ×1

c ×1

c-preprocessor ×1

cpu ×1

csh ×1

fcntl ×1

heap ×1

innodb ×1

macros ×1

mmap ×1

mysql ×1