------ 11-9 Linux 下启动Oracle数据库 以Oracle用户登录 sqlplus / as sysdba 启动数据库 startup 退出sqlplus后,启动监听 lsnrctl start --- 启动机器上的ftp服务 service vsftpd start ------- 调用函数查看机器中cpu的数量 #include <stdio.h> #include <unistd.h> int main() { long num_procs = sysconf(_SC_NPROCESSORS_CONF); printf("cpu 的数量有: %ld个/n", num_procs); return 0; } ------ 11-10 gdb调试 bt 查看函数堆栈 finish 退出函数 grant connect, resource to new_user; mmap oci 函数访问clob字段比较麻烦,不知道怎么处理 --- 11-11 按照字符串方式读取clob类型数据时,默认的大小是4000个长度 long 类型的数据可以原来保存字符串 cpu信息:cat /proc/cpuinfo 内存信息:cat /proc/meninfo 一个SQL问题,对一组数据进行排序后进行标号处理,如何实现,好像并不是那么简单,直接select后的数据困难会是无序的 crontab 使用的问题,注意 系统调用crontab执行shell脚本的时候,是从系统中某一个路径去执行的,所有脚本和日志必须要写绝 对路径,还要注意环境变量 shell中大于 小于 不使用 > < ,使用字母表示, 是为了避免和重定向符号一样 --- 11-12 在使用一些命令如sqlldr时,应当设置好环境变量 export ORACLE_HOME=/oracle/app/oracle/product/11.1.0/db_1 shell在后台执行的输出如果没有指定保存地方,就会mail到一个系统文件中 /var/mail -- 11-15 管道的使用 ftp #include <stdio.h> int ftpFunction(const char * ip, const char * user, const char * pass, const char * path, const char * filename) { FILE* fp = popen("ftp -n", "w"); if(!fp) { return -1; } fprintf(fp, "open %s/n", ip); fprintf(fp, "user %s %s/n", user, pass); fprintf(fp, "prompt/n"); fprintf(fp, "cd %s/n", path); fprintf(fp, "mget %s/n", filename); fprintf(fp, "by"); pclose(fp); return 0; } int main() { ftpFunction("192.168.111.101", "pcf", "pcf", "/home/pcf/zyj/egeg", "writeFile.c"); return 0; } -- shell中的=号左右不要加空格 -- 11-16 sqlplus的无回显模式,可以通过管道popen在程序中进行调用 C:/Documents and Settings/sunyu>sqlplus -S test/test@102_db select * from dual; D - X select * from student; ID NAME ---------- -------------------------------- 11 LiLei 12 HanMeimei 11 LiLei 12 HanMeimei -- linux中stat函数获取文件的状态 getcwd 函数获取当前绝对路径 互斥量 -- ./db conf11 student ./mo student c.txt -- 11-17 #!/bin/sh #./db $1 echo $1 data="./file/${1}.txt" echo $data file=`date +%Y%m%d%H` log=${1}_${file}.log echo ${log}