培訓部分
unix網路程式設計
socket本身是乙個檔案描述符
socket.h
int socket(int domain,int type,int protocol);
通常情況下protocol是0
domain af_inet為網路,af_unix為本地
af_後端巨集為pf_
sock_stream tcp
sock_dgrem udp
struct sockaddr_in addr
netinet/in.h
htons,inet_addr在arpa/inet.h中
addr.sin_family=af_inet;
addr.port=htons(2222);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
伺服器端 需要bind (socket,&addr,sizeof(addr));
客戶端:tcp需要connect udp可以直接sendto;
connect引數和bind一樣
最後需要close
伺服器端bind之後進行listen(socketfd, 233);
int len=sizeof(addr);
int accept(sockfd,(struct sockaddr*)&addr,&len);
!!accept的最後乙個引數是乙個指標!!用來傳入傳出
成功返回乙個新的fd.用來本機穩定通訊
讀寫操作用新的fd進行操作
udp使用 sendto,recvfrom
sendto(sockfd,buf,sizeof(buf),0);第四個引數0為預設等待
如果不connect write無法傳送.
read可以接收資料,但是不能包含傳送方資訊.
執行緒pthread.h
編譯時要包括 -pthread
pthread_t pid;
int pthread_create(&pid,pthread_attr_t* attr,void* (*f)(void*),void* p);
返回乙個執行緒id,然後從f開始執行
第二個引數一般為0
pthread_join(pid,0);
等待乙個程序結束,0為等待
執行緒最好以return 結束,或者pthread_exit(0);結束
exit(0);會連同程序一起推出
在create之後呼叫pthread_detach(pid)使執行緒分離,和主程序無關了
互斥量pthread_mutex_t lock=thread_mutex_initializer;
或pthread_mutex_init(&lock,0);
pthread_mutex_lock(&lock) 加鎖
pthread_mutex_unlock(&lock) 解鎖
pthread_mutex_destroy(&lock)
對同乙個上鎖會等待,用pthread_mutex_trylock可以不等待
訊號量!不是訊號量集
標頭檔案semaphore.h
sem_t sem;
sem_init(&sem,0,5);
第二個引數是執行緒或程序,0為執行緒
第三個引數初始化計數器個數
sem_wait(&sem)
獲取訊號量 -1;
sem_post(&sem)
釋放訊號量 +1
destroy_sem(&sem)**訊號量資源
資料庫oracle欄位型別
number
varchar2
date
任何值和null做運算都是null
nvl(e,1); 當e是null時返回1;
字串用單引號,雙引號中間可以有空格,且字串形式完全一樣
字串拼接用||
單引號裡面加兩個個單引號用來輸出乙個單引號
%%表示%
dinstinct關鍵字放在select之後 用來去除重複,整句只能有乙個
where條件判斷
where a between 123 and 2
a在123到2之間
where a in(1,2,3);
a在1,2,3中
like '字串' escape'\'
以\作為乙個標示符,表明\後面的乙個字元為實體
null 可以用 is和is not
排序order by 排序字段 排序方式,排序欄位2 排序方式2
預設ase這公升序
desc 降序
永遠在sql語句最後部分
當行函式
upper,lower,initcap首字母大寫,length,
substr(e1,e2,e3) 字串擷取
e1 要處理的字串,e2從**開始擷取-1代表最後乙個字元位置,e3擷取多少個字元
round(e1,e2)四捨五入
e2可以為負數,從小數點往前推
trunc(e1,e2) 擷取資料
e2表示指定小數保留的位數
to_char(e1,e2)
e2為格式字串,針對數字時 以fm開頭
9 小數點前代表0-9,後代表1-9,
0 小數點前代表前導0,後面代表0-9
多表查詢
自查詢給本表命名兩個別名
from s_emp a,s_emp b;
組函式count,sum
sql>@指令碼完整路徑 匯入sql
內連線,會損失乙個表裡沒有匹配的內容
外連線,可以將沒有匹配的內容頁顯示出來
只有oracle支援(+),加了(+)的表的對面表不損失,相當於本表加了null行
a left outer join b 左和右連線,都是右邊的乙個不損失
自學部分
移除性演算法
remove
remove_if
remove_copy
remove_copy_if
c 培訓周總結3
培訓部分 巨集頭檔案格式 ifndef h h fsd define h h fsd x endif ifdef ifndef elif elif else endif static在當前檔案中有效 結構體指標只開闢乙個指標的空間 c語言的結構體不能包括函式 結構體的記憶體對齊 不足就多分配4k.補...
c 培訓周總結4
培訓部分 資料結構的概念 邏輯結構 物理結構 運算結構 幾個常用的資料結構 堆疊 棧 佇列鍊錶 二叉樹 有序 資料結構的分類 抽象層 邏輯結構 人腦中 結構層 物理結構 計算機 實現層 運算結構 應用角度 邏輯結構的分類 集合結構 集 結構中的元素除了 同屬於乙個集合之外沒有 其他的關係。線性結構 ...
第7周學習總結
package com.test.mytest7 建立了乙個用於運算元組的工具類,其中包含著常見的對陣列操作得的函式,如 最值,排序等。public class arraytool 該類中的方法都是靜態的,所以該類是不需要建立物件的。為了保證不讓其他程式建立該類物件,可以將該類的建構函式私有化 獲取...