亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3621 | 回復(fù): 15
打印 上一主題 下一主題

發(fā)布一段自己的小程序,以結(jié)交學(xué)習(xí)unix下C編程的朋友! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-05-09 21:51 |只看該作者 |倒序?yàn)g覽
本人因做畢業(yè)設(shè)計(jì),學(xué)習(xí)C編程已有一個(gè)月了,但這段時(shí)間的學(xué)習(xí)進(jìn)展很慢,一直想多結(jié)交些同樣在學(xué)習(xí)unix下C編程的朋友。以下是本人寫的一個(gè)小程序,是用來讀取配置文件中的參數(shù)的。希望大家多多指正,同時(shí)也希望能起到拋磚引玉的作用,大家都發(fā)布一下自己的覺得有用的代碼。
我的聯(lián)系方式:zhguowen0103@hotmail.com (MSN:加好友時(shí)請(qǐng)注明“共同學(xué)C”。

說明:
本人開發(fā)環(huán)境:OS:AIX 5.2-03 編譯器:IBM(R) XL C Enterprise Edition V7.0 這段程序是用來在當(dāng)前目錄下一個(gè)文件中讀取disk_int and cpu_int兩個(gè)參數(shù)的值,要求文件的格式為:

…………
disk_int 30
cpu_int 5
…………

程序代碼:

#include <stdio.h>   
#include <string.h>  
#include <fcntl.h>

char temp_d[8];
char temp[4096];
char *p;
int temp_i=0;
const char tmp1[8]="cpu_int";
const char tmp2[9]="disk_int";

/* 將要取的參數(shù)字符串讀入數(shù)組temp_d中 */
void get_str(char *p)
{
        int i=0;
        while ((*p>='0')&&(*p<='9'))
            {
                    temp_d=*p;
                    temp_i=i;
                    i++;
                    p++;
                    temp_d='\0';
            }
        return;
}

/*計(jì)算數(shù)組temp_d中字符串的算術(shù)值*/
int get_value()
{
        int i=0;
        int j=0;
        for (i=0;i<=temp_i;i++)
        {
                j*=10;
                j+=temp_d-48;
        }
        return j;
}

int main(int argc, char* argv[])
{
        int fd,aa;

        if (argc != 2)
        {
                printf("Only one file can be input");
                return;
        }
        if ((fd=open(argv[1],O_RDONLY))== -1)
        {                                                                  
                printf("cannot open file1");                                         
                exit ( 0 ) ;                                                     
        }  
        read (fd,temp,4096);/*將文件中的內(nèi)容讀入數(shù)組temp中*/
        p=strstr(temp,tmp1);
        while(*p!=' '&&*p!='=')
            p++;
        p++;

        get_str(p);
        aa=get_value();
        printf("cpu_int =%d\n",aa);
                                              
        p=strstr(temp,tmp2);
        while(*p!=' ')
                    p++;
            p++;
        get_str(p);
        aa=get_value();
        printf("disk_int =%d\n",aa);
        return;
}

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-05-09 22:08 |只看該作者
"本人因做畢業(yè)設(shè)計(jì),學(xué)習(xí)C編程已有一個(gè)月了"
不是吧,到畢業(yè)設(shè)計(jì)時(shí)候才學(xué)C一個(gè)月?看來你是提前畢業(yè)了

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2007-05-09 23:40 |只看該作者
void get_str(char *p)
沒有必要傳指針

void get_str(char p)
就可以了,調(diào)用時(shí):
get_str(*p);

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-05-10 00:17 |只看該作者
原帖由 epegasus 于 2007-5-9 22:08 發(fā)表
"本人因做畢業(yè)設(shè)計(jì),學(xué)習(xí)C編程已有一個(gè)月了"
不是吧,到畢業(yè)設(shè)計(jì)時(shí)候才學(xué)C一個(gè)月?看來你是提前畢業(yè)了


據(jù)我了解,只有少部分專業(yè)沒開c這門課。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-05-10 08:30 |只看該作者
樓主的數(shù)組用法似乎有些問題
  1.         while ((*p>='0')&&(*p<='9'))
  2.             {
  3.                     temp_d=*p;
  4.                     temp_i=i;
  5.                     i++;
  6.                     p++;
  7.                     temp_d='\0';
  8.             }
復(fù)制代碼

中的
  1. temp_d=*p;
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-05-10 08:59 |只看該作者
大家發(fā)布的比較有用的代碼在精華區(qū)里多得很的!

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2007-05-10 09:35 |只看該作者
呵呵,實(shí)現(xiàn)功能都比較容易,關(guān)鍵是差錯(cuò)處理,你的程序健壯性不是很好
建議用LibXML去讀配置文件,方便配置文件格式支持很靈活
另外,我想,配置文件應(yīng)該是樹的格式,比如:

  1. ###############config.ini#############
  2. #對(duì)系統(tǒng)的說明
  3. [SYSTEM]
  4. ID = 123
  5. IP_ADDR=192.168.0.1
  6. #對(duì)客戶端說明
  7. [CLIENT]
  8. COUNT  =    3
  9. TIME      =          4324324
  10. NAME = LOCALHOST
復(fù)制代碼

這樣是不是更好點(diǎn)

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2007-05-10 10:04 |只看該作者
多謝大家的指點(diǎn)和關(guān)注。
我是自考生,三年前確實(shí)學(xué)過《C語言程序設(shè)計(jì)》,學(xué)得也不深,也差不多都忘了,F(xiàn)在開始做畢業(yè)設(shè)計(jì)了,再次學(xué)習(xí)C,我的畢設(shè)題目是《AIX操作系統(tǒng)壯態(tài)監(jiān)控軟件的實(shí)現(xiàn)》。這一個(gè)月的時(shí)間,大多時(shí)間不是在學(xué)純C語言的語句等,更多的時(shí)間是在了解AIX下的系統(tǒng)函數(shù)和unix下編程的知識(shí),我看了《unix環(huán)境高級(jí)編程》這本書,發(fā)現(xiàn)里面好多實(shí)例并不能直接拿到AIX下運(yùn)行。
AIX下的C編程與unix下C編程有何區(qū)別?是我一直很困惑的地方,ASCI C / POSIX/SVR4 讓我一頭霧水。
unix下C編程的教材,講BSD、Linux、Saloris很多,唯獨(dú)不講AIX,IBM廠家提供的手冊(cè)又太澀,難哪!

[ 本帖最后由 zhguowen 于 2007-5-10 10:15 編輯 ]

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2007-05-10 10:15 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2007-05-10 10:38 |只看該作者
原帖由 zhguowen 于 2007-5-10 10:04 發(fā)表
多謝大家的指點(diǎn)和關(guān)注。
我是自考生,三年前確實(shí)學(xué)過《C語言程序設(shè)計(jì)》,學(xué)得也不深,也差不多都忘了,F(xiàn)在開始做畢業(yè)設(shè)計(jì)了,再次學(xué)習(xí)C,我的畢設(shè)題目是《AIX操作系統(tǒng)壯態(tài)監(jiān)控軟件的實(shí)現(xiàn)》。這一個(gè)月的時(shí)間,大 ...


Single Unix規(guī)范還是要好好讀讀,我記得AIX是符合Single Unix規(guī)范的。
http://blog.chinaunix.net/u/29642/showart_240655.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP