記憶體池的一種實現

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <semaphore.h>#include "Const.h"#include "UtilityFunc.h"#include "hashtable.h"#include "logmsg.h"#define SYSTEM_PAGE_SIZE    4096    #define DEFAULT_MAX_NUM     1

得到fprintf的系統緩衝方法

// 得到fprintf的系統緩衝方法#include <stdio.h>int main (int argc, char **argv){  FILE *fp;    fp = fopen ("xxx",  "w");    fprintf (fp, "foo");   printf ("%d\n",  fp->_IO_buf_end - fp->_IO_buf_base);fclose(fp);  return 0;}/////////////////////////

對DNS報文的理解

 對DNS報文的理解  2009-07-01 18:14:43|  分類:電腦(資訊區) |  標籤:|字型大小大中小 訂閱本人是在windows 上使用nslookup工具來產生的dns通訊,見。-----------------------------dns查詢報文------------------------------------ 首先是一個dns查詢報文抓包: 0000: 00 14 78 b5 da ae 00 0c 6e ec 1e ae 08 00 45 00 ..x.....

等長記憶體塊記憶體池

struct UserData{    //UserData指標 UserData* pBefore; UserData* pAfter; //該UserData在資料區中的索引 int index; //增加一個標誌,標識該UserData是否被使用 bool used;  void freeUserData() {  used = false; }    UserData(int index) :    pBefore(NULL), pAfter(NULL), index(index) { 

非root 使用者用root許可權執行程式的設定方法

非root 使用者用root許可權執行程式的設定方法:假設需要執行的程式是 controller_test.用root使用者佈建步驟如下:     1, 設定所屬使用者與屬組為  root        [root@localhost ~]# chown root.root controller_test    2,  對controller_test加入user的設定為s ,表示任何調用 controller_test程式的使用者,擁有擁有者的所有許可權。   

請問輸出為什麼是這樣?

#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>using namespace std;class A{public:A(){cout <<"A()"<<endl;}~A(){cout <<"~A()"<<endl;}void operator () (int &k){cout <<k<

localtime_r的替代實現

struct tm * my_localtime_r(const time_t *srctime,struct tm *tm_time){    long int n32_Pass4year,n32_hpery;     // 每個月的天數  非閏年    const static char Days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};        // 一年的小時數    const static int

設定pl/sql串連資料庫方法tnsnames.ora

#########D:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMINXE =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = PC2008072813klv)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = XE)    ) 

awk分析話單列子 tcp串連失敗率,及失敗串連的topN

# 計算話單中,tcp串連失敗率,及失敗串連的topN# 第29欄位為6時的話單為tcp串連# 第85欄位為1時表示串連失敗 # 第28欄位表示目的ip,即伺服器的ip, 按目的ip計算topN# $0表示整行, FS表示欄位分割符, NF表示目前記錄中的欄位數量,NR表示表示目前記錄的編號,awk將第一個記錄算作記錄號1awk -F '\t' '{    if ($29!=6)    {        next;    }    dip = $28; DIP[dip]++;     if($8

關於__VA_ARGS__

 #include<stdio.h>#define PRINT_DBG(debug, ...)\{\    if(debug) {\    fprintf(stderr, "%s %s [%d]: ", __FILE__, __FUNCTION__, __LINE__);\    fprintf(stderr, __VA_ARGS__);\    }\}#define PRINT_DBG1(tag,fmt,...)\ do {\ if(tag) {\ fprintf(stderr,

open() 標誌位的設定與清除

/*設定 open 標誌*/void setBlock(int fd, int flags){    int     val;    if ( (val = fcntl(fd, F_GETFL, 0)) < 0)    {        perror("fcntli get");    }        val |= flags;        if (fcntl(fd, F_SETFL, val) < 0)    {        perror("fcntl set");    }

在程式中判斷一個檔案是否可讀的方法

bool canRead(string _path) { assert (!_path.empty()); struct stat st; if (stat(_path.c_str(), &st) == 0) {  if (geteuid() == 0)  // 程式的ueid 是 root使用者  ;root使用者,一定對檔案可讀可寫   return true;  //*****不是root使用者時 ,與_path這個檔案的 user group other 依次判斷  else

計算進程的cpu使用率 gnuplot 作圖 cpu使用率曲線示意圖

一,cpu使用率計算代碼: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>#include

鄙視select, 然後鄙視自己

首先,先鄙視一下自己,再強烈鄙視一下select 也許大家都知道select有一個FD_SETSIZE 1024的限制,在UNP 第一卷139頁(第二版)有這麼一句話:                                             “標頭檔<sys/select.h>中定義的FD_SETSIZE常值是資料類型fd_set中的描述字總數,其值通常是1024。不過..." 反正我是被這句話給誤導了,單純的以為FD_SETSIZE

環形訊息佇列的實現

struct MessageQueue{ int* m_pArray; //訊息佇列長度 int m_iLength; //訊息佇列的讀下標 int m_iRead; //訊息佇列的寫下標 int m_iWrite; //多個寫操作時的互斥鎖 pthread_mutex_t m_mutex; //該訊息佇列的條件變數 pthread_cond_t m_cond;};MessageQueue* ip_create_messagequeue(int length){ MessageQueue*

定製自己的eversecOS

 定製自己的eversecOS 一:要求:利用CentOS-5.5-i386-bin-DVD.iso定製自己的發行版。       效能要求:安裝過程要求能選擇安裝公司的哪些組件,哪些RPM包,並且安裝過程中,可通過特定的介面來配置公司開發軟體的設定檔。       介面要求: 文字圖片需是公司的內容或logo。 二:完成的工作:       效能部分,配置好ks.cfg後,只能在text方式下可選安裝組件與RPM包。      

環形資料緩衝的實現

關鍵在於寫指標不能追上讀指標,讓讀指標和寫指標保留一個位元組的距離來區分2個指標重疊的情況。如何保證安全執行緒的?其實就是某個線程在讀取或者寫入的時候取的某個時間點的指標來判斷時候符合條件,條件只能是越來越好,而不可能是越來越差。比如判斷能夠寫入的時候,空間肯定是越來越多的  //實際的緩衝區大小要多一個位元組struct RingBuffer{ //緩衝區頭指標       char* m_pBuffer; //緩衝區大小 int m_iBufferSize;             

依賴反轉,異常,auto_ptr,多態,STL容器,虛建構函式

(1) 棧上變數必須初始化(2) 從堆上分配的記憶體必須初始化 (3) 棧上局部變數是否有大陣列變數,導致棧超出預設限制溢出 (4) 棧中是否有不合理的遞迴,導致棧超出預設限制溢出 (5) 必須對記憶體耗盡的情況進行處理(6) 釋放某個指標後,必須將該指標變數賦值為NULL, 避免野指標的出現(7) 禁止對同一指標delete或者free兩次或以上(8) 對數組操作,必須強制確保下標不會越界(9) 避免頻繁的不等長小記憶體申請和釋放(10) 記憶體申請和釋放必須配對,防止記憶體流失(11)

深入理解shutdown和close函數

shutdown可以半關閉讀和寫端,關閉讀端,告訴核心不再接收資料,統統扔掉關閉寫端,只發送一個關閉握手,即一個FIN。shutdown只能關閉寫,或者讀,fd的關閉還必需要close來完成, 否則fd會一致增長close關閉fd的時候,如果該fd有計數,那麼要等計數為0後才能發送關閉握手包 單進程多執行緒fd的時候,需要自己構造fd計數器來實現fd的關閉

記憶體管理checklist

(1) 棧上變數必須初始化(2) 從堆上分配的記憶體必須初始化 (3) 棧上局部變數是否有大陣列變數,導致棧超出預設限制溢出 (4) 棧中是否有不合理的遞迴,導致棧超出預設限制溢出 (5) 必須對記憶體耗盡的情況進行處理. 注意new在記憶體不足時的處理方式(6) 釋放某個指標後,必須將該指標變數賦值為NULL, 避免野指標的出現(7) 禁止對同一指標delete或者free兩次或以上(8) 對數組操作,必須強制確保下標不會越界(9) 避免頻繁的不等長小記憶體申請和釋放(10)

總頁數: 61357 1 .... 19995 19996 19997 19998 19999 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.