12-1 一种在shell中进行交互调用telnet的方法,telnet需要先后进行几个输入,采用sleep的方式依次输入参数 cat echo.sh sleep 1 echo username sleep 1 echo password sleep 1 echo ls sleep 1 echo exit --- cc001:~/test/test/t119 # ./echo.sh | telnet 192.168.111.98 Trying 192.168.111.98... Connected to 192.168.111.98. Escape character is '^]'. Welcome to SUSE Linux Enterprise Server 10 SP1 (x86_64) - Kernel 2.6.16.46-0.12-smp (4). sz10etl98 login: username Password: Last login: Thu Dec 2 15:48:26 EST 2010 from 192.168.100.176 on pts/1 -- 12-2 查看被锁的表 select p.spid, c.object_name, b.session_id, b.oracle_username, b.os_user_name from v$process p,v$session a, v$locked_object b, all_objects c where p.ADDR = a.PADDR and a.PROCESS = b.PROCESS and c.object_id = b.OBJECT_ID; ------ 地址的使用 *(type*)0x12121 -- 12-6 写绝对路径执行程序 /oracle/app/oracle/product/11.1.0/db_1/bin/sqlldr ${ORACLE_HOME}/bin/sqlldr -- 12-7 STL中make_pair 组织键值对 -- 12-8 测试系统调用sqlldr的返回值 sqlldr test/test@102_db control=d.ctl data=in.txt > out.txt 使用system调用sqlldr命令的时候,出现错误的时候,如文件数据有错误,返回值为非0,出错的数据保存到bad文件中 512 数据错误,bad文件中有记录 256 ORA-01017: invalid username/password; logon denied SQL*Loader-500: Unable to open file (in1.txt) SQL*Loader-553: file not found SQL*Loader-509: System error: No such file or directory SQL*Loader-2026: the load was aborted because SQL Loader cannot continue. i = 256 --- 12-9 $ORACLE_HOME/bin/sqlldr test/test@102_db control=d.ctl data=in.txt 可以执行 在mv的时候进行改名处理 SQL*Loader: Release 11.1.0.6.0 - Production on Thu Dec 9 18:28:05 2010 Copyright (c) 1982, 2007, Oracle. All rights reserved. SQL*Loader-500: Unable to open file (../data/file//3001_1.dat) SQL*Loader-553: file not found SQL*Loader-509: System error: No such file or directory SQL*Loader-2026: the load was aborted because SQL Loader cannot continue. i = -256 进行sqlldr 调用的时候,文件名必须含有后缀.xx kill发送信号 kill -s SIGINT 5133 向进程发送信号的时候,可以使用kill -s SIGINT 5133,也可以直接 kill -SIGINT 5133 由于每个SIGNAL有其对应的数值(可以用kill -l 看到), 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 所以发送信号还可以 kill -2 [进程PID] 常用的kill -9 就是这种用法 ---- 12-10 在使用stl的时候应该注意 如 map<string, ofstream> , 在使用的时候就会有问题 这个时候使用指针来解决拷贝问题 map<string, ofstream*>