c 培訓周總結7

2021-06-19 21:13:04 字數 2989 閱讀 9038

培訓部分

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 該類中的方法都是靜態的,所以該類是不需要建立物件的。為了保證不讓其他程式建立該類物件,可以將該類的建構函式私有化 獲取...