1、.bash_profile 修改後 要使修改生效 需要執行 . .bash_profile 命令
2、vim沒有顏色,解決辦法:開啟shell配置檔案,.bash_profile或.bashrc加入
term=xterm
export term
3、要輸入./才能找到檔案,修改.bash_profile的path這行 加上:. 如:
path=$path:$home/bin:.
4、.suffixes:.c .o 關聯.c 和 .o 檔案
可以使用標號 .c.o:
5、gdb生成core檔案, 在.bashrc檔案中加入一句 ulimit -c unlimited
6、庫檔案編譯方法,編譯時gcc 要加上 -fpic選項產生與位置無關的**,連線時 -shared,表示生成乙個庫檔案,庫檔案以lib開頭,.so為副檔名。
為了讓linux在當前目錄找so檔案,需要在bash_profile中新增export ld_library_path=$ld_library_path:.
或者將so檔案放入linux的系統目錄 /usr/lib/下
在呼叫庫時,gcc連線時新增 -l引數指明so檔案存放路徑,-l引數指明so檔案
如libtest.so檔案在當前路徑下:gcc -l. -ltest -o a a.o
7、sockaddr_in
struct
sockaddr_in
;
sin_family指代協議族,在socket程式設計中只能是af_inet
sin_port儲存埠號(使用網路位元組順序)
sin_addr儲存ip位址,使用in_addr這個資料結構
sin_zero是為了讓sockaddr與sockaddr_in兩個資料結構保持大小相同而保留的空位元組。
s_addr按照網路位元組順序儲存ip位址
8、address already in use的解決方法
當客戶端保持著與伺服器端的連線,這時伺服器端斷開,再開啟伺服器時會出現: address already in usr
可以用netstat -anp | more 可以看到客戶端還保持著與伺服器的連線(還在使用伺服器bind的埠)。這是由於client沒有執行close,連線還會等待client的fin包一段時間。解決方法是使用setsockopt,使得socket可以被重用,是最常用的伺服器程式設計要點。具體的做法為是,在socket呼叫和bind呼叫之間加上一段對socket的設定:
int opt = 1;
setsockopt(socket_fd,sol_socket,so_reuseaddr,&opt,sizeof(opt));
附 :setsockopt的用法。
setsockopt(設定socket狀態)
相關函式
getsockopt
表頭檔案
#include;
#include;
定義函式
int setsockopt(int s,int level,int optname,const void * optval,,socklen_toptlen);
函式說明
setsockopt()用來設定引數s所指定的socket狀態。引數level代表欲設定的網路層,一般設成sol_socket以訪問socket層。引數optname代表欲設定的選項,有下列幾種數值:
so_debug 開啟或關閉排錯模式
so_reuseaddr 允許在bind()過程中本地位址可重複使用
so_type 返回socket形態。
so_error 返回socket已發生的錯誤原因
so_dontroute 送出的資料報不要利用路由裝置來傳輸。
so_broadcast 使用廣播方式傳送
so_sndbuf 設定送出的暫存區大小
so_rcvbuf 設定接收的暫存區大小
so_keepalive 定期確定連線是否已終止。
so_oobinline 當接收到oob 資料時會馬上送至標準輸入裝置
so_linger 確保資料安全且可靠的傳送出去。
引數 optval代表欲設定的值,引數optlen則為optval的長度。
返回值
成功則返回0,若有錯誤則返回-1,錯誤原因存於errno。
附加說明
ebadf 引數s並非合法的socket處理**
enotsock 引數s為一檔案描述詞,非socket
enoprotoopt 引數optname指定的選項不正確。
efault 引數optval指標指向無法訪問的記憶體空間
Linux學習記錄 ftp使用者操作
1 新增使用者 useradd useradd d www s sbin nologin guo d 指定家目錄 s 使用者登陸後所使用的shell g 指定使用者所屬的群組 2 修改密碼 passwd guo enter兩次後輸入新密碼和確認密碼 3 刪除使用者 userdel guo 簡單的刪除...
Linux 操作 記錄
格式 crunch options 解釋 最短長度 最長長度 在命令列使用crunch你可能必須指定字符集設定,否則將使用預設的字符集設定。預設的設定為小寫字符集,大寫字符集,數字和特殊字元 符號 如果不按照這個順序,你將得到自己指定結果。必須指定字元型別或加號的值。注意 如果你想在你的字符集中包含...
Linux操作記錄
1 獲取某請求響應 curl curl 127.0.0.1 802 檢視網路狀態 netstat netstat ln 或者netstat anop grep pidpid是程序號 3 檢視某服務程序 ps ps ef grep tomcat4 檢視tomcat動態日誌 tail tail f lo...