1. c語言中,如何把數組中的內容,給字元串型指針!如把a[]中的內容給到*FMT中。
這個試試吧
#include "stdio.h"
main()
{
 int a[4]={1,2,3,4};//假定的數組
 int i,*FMT;
 scanf("%d",&i);//輸入選擇數組中的數據
 FMT=&a[i];//賦給指針
 printf("%d\n",*FMT);//列印
}
方法一:
char a[5];
char *FMT=(char*)malloc(sizeof(char)*5);
int i,k;
for(k=0,i=0;i<5;i++)
   FMT[k++]=a[i];
方法二:
char a[5];
char *FMT=a;
2. (va_list)((char*)(&fmt) + 4)與(va_list)((&fmt) + 4)有什麼不同C語言!
fmt類型如果是char的話是沒事的。如果是其他類型的話,再加4,偏移就不是4個位元組了,而是4個那種類型長度。
3. c語言中的void printlog(char *format,...)這是什麼意思
是可變參數,是c的一個語法現象,我在電腦上保存的一些資料,希望對你有用。
一、什麼是可變參數
我們在C語言編程中有時會遇到一些參數個數可變的函數,例如printf()函數,其函數原型為: 
int printf( const char* format, ...); 
它除了有一個參數format固定以外,後面跟的參數的個數和類型是可變的(用三個點"…"做參數佔位符),實際調用時可以有以下的形式: 
       printf("%d",i); 
       printf("%s",s); 
       printf("the number is %d ,string is:%s", i, s);    
以上這些東西已為大家所熟悉。但是究竟如何寫可變參數的C函數以及這些可變參數的函數編譯器是如何實現,這個問題卻一直困擾了我好久。本文就這個問題進行一些探討,希望能對大家有些幫助.
二、可變參數在編譯器中的處理 
我們知道va_start,va_arg,va_end是在stdarg.h中被定義成宏的, 由於1)硬體平台的不同 2)編譯器的不同,所以定義的宏也有所不同,下面看一下VC++6.0中stdarg.h里的代碼(文件的路徑為VC安裝目錄下的\vc98\include\stdarg.h)
       typedef char *     va_list;
       #define _INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
       #define va_start(ap,v)     ( ap = (va_list)&v + _INTSIZEOF(v) )
       #define va_arg(ap,t)       ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
       #define va_end(ap)         ( ap = (va_list)0 )
下面我們解釋這些代碼的含義:
1、首先把va_list被定義成char*,這是因為在我們目前所用的PC機上,字元指針類型可以用來存儲內存單元地址。而在有的機器上va_list是被定義成void*的
2、定義_INTSIZEOF(n)主要是為了某些需要內存的對齊的系統.這個宏的目的是為了得到最後一個固定參數的實際內存大小。在我的機器上直接用sizeof運算符來代替,對程序的運行結構也沒有影響。(後文將看到我自己的實現)。
3、va_start的定義為 &v+_INTSIZEOF(v) ,這里&v是最後一個固定參數的起始地址,再加上其實際佔用大小後,就得到了第一個可變參數的起始內存地址。所以我們運行va_start(ap, v)以後,ap指向第一個可變參數在的內存地址,有了這個地址,以後的事情就簡單了。 
這里要知道兩個事情:
       ⑴在intel+windows的機器上,函數棧的方向是向下的,棧頂指針的內存地址低於棧底指針,所以先進棧的數據是存放在內存的高地址處。
       (2)在VC等絕大多數C編譯器中,默認情況下,參數進棧的順序是由右向左的,因此,參數進棧以後的內存模型如下圖所示:最後一個固定參數的地址位於第一個可變參數之下,並且是連續存儲的。
|--------------------------|
|     最後一個可變參數                |      ->高內存地址處
|--------------------------|
|--------------------------|
|     第N個可變參數                 |        ->va_arg(arg_ptr,int)後arg_ptr所指的地方,
|                                  |        即第N個可變參數的地址。
|--------------- |     
|--------------------------|
|     第一個可變參數                  |        ->va_start(arg_ptr,start)後arg_ptr所指的地方
|                                  |        即第一個可變參數的地址
|--------------- |     
|------------------------ --|
|                                  |
|     最後一個固定參數                |       -> start的起始地址
|-------------- -|          .................
|-------------------------- |
|                                  |  
|--------------- |     -> 低內存地址處
(4) va_arg():有了va_start的良好基礎,我們取得了第一個可變參數的地址,在va_arg()里的任務就是根據指定的參數類型取得本參數的值,並且把指針調到下一個參數的起始地址。
因此,現在再來看va_arg()的實現就應該心中有數了:
       #define va_arg(ap,t)       ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
這個宏做了兩個事情,
      ①用用戶輸入的類型名對參數地址進行強制類型轉換,得到用戶所需要的值
      ②計算出本參數的實際大小,將指針調到本參數的結尾,也就是下一個參數的首地址,以便後續處理。
(5)va_end宏的解釋:x86平台定義為ap=(char*)0;使ap不再 指向堆棧,而是跟NULL一樣.有些直接定義為((void*)0),這樣編譯器不會為va_end產生代碼,例如gcc在linux的x86平台就是這樣定義的. 在這里大家要注意一個問題:由於參數的地址用於va_start宏,所以參數不能聲明為寄存器變數或作為函數或數組類型. 關於va_start, va_arg, va_end的描述就是這些了,我們要注意的 是不同的操作系統和硬體平台的定義有些不同,但原理卻是相似的.
三、可變參數在編程中要注意的問題 
因為va_start, va_arg, va_end等定義成宏,所以它顯得很愚蠢, 可變參數的類型和個數完全在該函數中由程序代碼控制,它並不能智能 地識別不同參數的個數和類型. 有人會問:那麼printf中不是實現了智能識別參數嗎?那是因為函數 printf是從固定參數format字元串來分析出參數的類型,再調用va_arg 的來獲取可變參數的.也就是說,你想實現智能識別可變參數的話是要通過在自己的程序里作判斷來實現的. 例如,在C的經典教材《the c programming language》的7.3節中就給出了一個printf的可能實現方式,由於篇幅原因這里不再敘述。
四、小結: 
1、標准C庫的中的三個宏的作用只是用來確定可變參數列表中每個參數的內存地址,編譯器是不知道參數的實際數目的。
2、在實際應用的代碼中,程序員必須自己考慮確定參數數目的辦法,如
⑴在固定參數中設標志-- printf函數就是用這個辦法。後面也有例子。
⑵在預先設定一個特殊的結束標記,就是說多輸入一個可變參數,調用時要將最後一個可變參數的值設置成這個特殊的值,在函數體中根據這個值判斷是否達到參數的結尾。本文前面的代碼就是採用這個辦法.
無論採用哪種辦法,程序員都應該在文檔中告訴調用者自己的約定。
3、實現可變參數的要點就是想辦法取得每個參數的地址,取得地址的辦法由以下幾個因素決定:
①函數棧的生長方向
②參數的入棧順序
③CPU的對齊方式
④內存地址的表達方式
結合源代碼,我們可以看出va_list的實現是由④決定的,_INTSIZEOF(n)的引入則是由③決定的,他和①②又一起決定了va_start的實現,最後va_end的存在則是良好編程風格的體現,將不再使用的指針設為NULL,這樣可以防止以後的誤操作。
4、取得地址後,再結合參數的類型,程序員就可以正確的處理參數了。理解了以上要點,相信稍有經驗的讀者就可以寫出適合於自己機器的實現來。
4. C語言中怎樣使輸出的正數前有正號
1、使用printf函數的格式化輸出即可實現在數字前補0。
2、例如:
printf("a=%06d\n",
a);
//輸出6位十進制整數
左邊補0,顯示
a=001234;
這里%06d的0就是指在前面補0佔位,6代表位寬。一般這兩個要一起用。
5. C語言內部函數 printf() 具體是怎麼寫的
printf()函數是C語言中的格式化輸出函數,包含在<stdio.h>庫函數里,格式化輸出是指按照一定的格式輸出,具體寫法為
printf("<格式化字元串>",<參數列表>);
例如:
printf("Hello,world!\n");
輸出為:
Hello,world!
如果要輸出數據,則應使用格式控制字元,常用的有%d、%c、%f等等,例如:
int a=1;
printf("The number is %d.\n",a);
輸出為
The number is 1.
6. C語言中的fmt是什麼
DEFINE 巨集定義
所給之定義中的fmt, 是一個暫時符號, 用來表示需要代換的參數.
在PC_Usart中, 依照 符號"," 進行分隔; 對照使用端範例, 即用來代替 "%s" 這個欄位.
實際上巨集的fmt, 可以看做一個欄位的代稱, 用來表示一個欄位的名稱, 並非只能使用"%s".
7. C語言問題 char *fmt;void disp(int q); disp(fmt);為什麼沒錯,類型明明不同的。
雖然類型不一樣, 但是有的編譯器頂多會出個警告, 因為在C語言中會有隱式類型轉換.
8. c語言指令有哪些啊
第一章:緒論?
內核版本號格式:x.y.zz-www/x為主版本號,y為次版本號,zz為次次版本號,www為發行號/次版本號改變說明內核有重大變革,其偶數為穩定版本,奇數為尚在開發中的版本
 
第二章:基礎?
文件種類:-:txt,二進制/d:目錄/l:鏈接文件(link)/b:區塊設備文件/c:字元設備文件/p:管道
目錄結構:bin:可執行/boot:開機引導/dev:設備文件/etc:系統配置文件/lib:庫文件/mnt:設備掛載點/var:系統日誌/
命令:rmdir:刪除空目錄/find [path] [expression]/touch命令還可以修改指定文件的最近一次訪問時間/tar -czvf usr.tar.gz path/tar –zxvf usr.tar.gz/tar –cjvf usr.tar.bz2 path/tar –jxvf usr.tar.bz2
gcc:預處理:-g/I在頭文件搜索路徑中添加目錄,L在庫文件搜索路徑中
gdb:設置斷點:b/查看斷點信息:info
Makefile:make –f other_makefile/<:第一個依賴文件的名稱/@:目標文件的完整名稱/^:所有不重復的依賴文件/+:所有依賴文件(可能重復)
 
第三章:文件IO
read:read(fd, temp, size); /讀fd中長度為size的值到temp/返回0表示file為NULL
write:write(fd, buf, buf_size); /寫長度為buf_size的buf內容到fd中
lseek:lseek(fd, offset, SEEK_SET); /從文件開頭向後增加offset個位移量
unlink:從文件系統中刪除一個名字
open1:int open(const char * pathname, int flags, mode_t mode);/flags為讀寫方式/mode為許可權設置/O_EXCL:測試文件是否存在/O_TRUNC:若存在同名文件則刪除之並新建
open2:注意O_NONBLOCK
mmap.1:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize);
mmap.2:mmap(start_addr, flength, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
fcntl:上鎖/int fcntl(int fd, int cmd, struct flock * lock);/對誰;做什麼;設置所做內容
select:fd_max+1,回傳讀狀況,回傳寫狀況,回傳異常,select等待的時間/NULL為永遠等待/0為從不等待/凡需某狀況則用之,反則(fd_set *)NULL之
FD_*那幾個函數……
一般出錯則返回-1
 
第四章:文件與目錄
硬鏈接與符號鏈接?
chdir改變目錄
0:in/1:out/2:err
 
第五章:內存管理
可執行文件存儲時:代碼區、數據區和未初始化區
棧:by編譯器,向低址擴展,連續,效率高/堆:by程序員
/etc/syslog.conf,系統log記錄文件/優先順序為-20時最高
 
第六章:進程和信號
程序代碼、數據、變數、文件描述符和環境/init的pid為1
execl族:int execl(const char * path, const char * arg, ....);/path即可執行文件的路徑,一般為./最後一個參數以NULL結束
waitpid:waitpid(pid_t pid,int * status,int options);/option:一般用WNOHANG,沒有已經結束的子進程則馬上返回,不等待
kill:int kill(pid_t pid,int sig);/發送信號sig給pid
void (*signal(int signum, void(* handler)(int)))(int);/第一個參數被滿足時,執行handler/第一個參數常用:SIG_IGN:忽略信號/SIG_DFL:恢復默認信號
 
第七章:線程
sem_init(sem_t *sem, int pshared, unsigned int value)/pshared為0/value即初始值
 
第八章:管道
1:write/0:read
 
第九章:信號量、共享內存和消息隊列
臨界資源:操作系統中只允許一個進程訪問的資源/臨界區:訪問臨界資源的那段代碼
信號量:建立聯系(semget),然後初始化,PV操作,最後destroy
共享內存沒有提供同步機制
 
第十章:套接字
UDP:無連接協議,無主客端的區分/實時性
TCP:位元組流/數據可靠性/網路可靠性
數據報:SOCK_STREAM/SOCK_DGRAM
 
其它
管道一章的both_pipe即父子進程間的全雙工管道通訊
關繫到信號和互斥的伺服器-客戶端程序
線程一章的class的multi_thread文件夾下的thread8.c
 
int main(void)
{
       int data_processed;
       int file_pipes_1[2];
       int file_pipes_2[2];
       char buffer[BUFSIZ + 1];
       const char some_data[] = "123";
       const char ch2p[] = "this is the string from child to the parent!";
       const char p2ch[] = "this is the string from parent to the child!";
       pid_t fork_result;
       memset(buffer,'\0',sizeof(buffer));
 
       if(pipe(file_pipes_1) == 0){
 
              if(pipe(file_pipes_2) == 0){
 
                     fork_result = fork();
                     switch(fork_result){
                            case -1:
                                   perror("fork error");
                                   exit(EXIT_FAILURE);
                            case 0://child
                              close(file_pipes_1[1]);
                              close(file_pipes_2[0]);
                              printf("in the child!\n");
 
                              read(file_pipes_1[0],buffer, BUFSIZ);
                              printf("in the child, read_result is \"%s\"\n",buffer);
 
                              write(file_pipes_2[1],ch2p, sizeof(ch2p));
                              printf("in the child, write_result is \"%s\"\n",ch2p);
                              exit(EXIT_SUCCESS);
                            default://parent
                              close(file_pipes_1[0]);
                              close(file_pipes_2[1]);
                              printf("in the parent!\n");
 
                              write(file_pipes_1[1], p2ch, sizeof(p2ch));
                              printf("in the parent, write_result is \"%s\"\n",p2ch);
 
                              read(file_pipes_2[0],buffer, BUFSIZ);
                              printf("in the parent, read_result is \"%s\"\n",buffer);
 
                              exit(EXIT_SUCCESS);
                     }
              }
       }
}
 
#ifndef DBG
#define DBG
#endif
 
#undef DBG
#ifdef DBG
#define PRINTF(fmt, args...) printf("file->%s line->%d: " \
                                    fmt, __FILE__, __LINE__, ##args)
#else
#define PRINTF(fmt, args...) do{}while(0);
#endif
 
int main(void)
{
       PRINTF("%s\n", "hello!");
       fprintf(stdout, "hello hust!\n");
       return 0;
}
 
#define N 5
#define MAX 5
 
int nput = 0;
char buf[MAX][50];
char *buffer = "";
char buf_r[100];
sem_t mutex,full,avail;
 
void *proctor(void *arg);
void *consumer(void *arg);
int i = 0;
 
int main(int argc, char **argv)
{
       int cnt = -1;
       int ret;
       int nput = 0;
 
       pthread_t id_proce[10];
       pthread_t id_consume;
 
       ret = sem_init(&mutex, 0, 1);
 
       ret = sem_init(&avail, 0, N);
 
       ret = sem_init(&full, 0, 0);
 
       for(cnt = 0; cnt < 6; cnt ++ ){
              //pthread_create(&id_proce[cnt], NULL, (void *)proctor, &cnt);
              pthread_create(&id_proce[cnt], NULL, (void *)proctor, (void *)cnt);
       }
       pthread_create(&id_consume, NULL, (void *)consumer, NULL);
 
       for(cnt = 0; cnt < 6; cnt ++){
              pthread_join(id_proce[cnt], NULL);
       }
       pthread_join(id_consume,NULL);
 
       sem_destroy(&mutex);
       sem_destroy(&avail);
       sem_destroy(&full);
       exit(EXIT_SUCCESS);
}
void *proctor(void *arg)
{
       while(1){
              sem_wait(&avail);
              sem_wait(&mutex);
              if(nput >= MAX * 3){
                     sem_post(&avail);
                     //sem_post(&full);
                     sem_post(&mutex);
                     return NULL;
              }
 
              sscanf(buffer + nput, "%s", buf[nput % MAX]);
              //printf("write[%d] \"%s\" to the buffer[%d]\n", (*(int*)arg), buf[nput % MAX],nput % MAX);
              printf("write[%d] \"%s\" to the buffer[%d]\n", (int)arg, buf[nput % MAX],nput % MAX);
              nput ++;
              printf("nput = %d\n", nput);
 
              sem_post(&mutex);
              sem_post(&full);
       }
       return NULL;
}
 
void *consumer(void *arg)
{
       int nolock = 0;
       int ret, nread, i;
       for(i = 0;  i < MAX * 3; i++)
       {
              sem_wait(&full);
              sem_wait(&mutex);
 
              memset(buf_r, 0, sizeof(buf_r));
              strncpy(buf_r, buf[i % MAX], sizeof(buf[i % MAX]));
              printf("read \"%s\" from the buffer[%d]\n\n",buf_r, i % MAX);
 
              sem_post(&mutex);
              sem_post(&avail);
              //sleep(1);
       }
       return NULL;
}
9. 後綴為fmt的應下載什麼軟體
各種格式文件打開方式:
——A類—— 
*.arc 壓縮文件,pkarc的壓縮文件. 
*.arj 壓縮文件,由arj解壓 
*.asc 任何地方 無格式的文本文件,只含有文本. 
*.asm masm,tasm 匯編語言程序, 
*.asx mp3 列表文件,mp3 playlist(mp3播放文件列表文件) 
*.avi 多媒體(游戲)中 動畫文件,(Audio Video Interface)微軟標准動畫文件, 
——B類—— 
*.bak 任何地方 備份文件, 
*.bas basica,qbasic basic語言程序, 
*.bat 任何地方 批處理文件, 
*.bgi Borland公司的圖形界面文件, 
*.bin (Binary)dos的二進制文件, 
*.bmp 任何地方 圖形文件,點陣圖文件,分灰度,256色,和真彩 
——C類—— 
*.c tubro c c語言程序, 
*.cab 微軟軟體 壓縮軟體, 
*.cda cd碟 cd文件, 
*.cfg 任何地方 配置文件, 
*.chk 由chkdsk.exe產生的文件, 
*.cmf 音樂文件,(Creative Music File)Creative公司的音樂文件, 
*.com 任何地方 可執行文件, 
*.cpl windows 控制面板文件, 
*.cpp c++ c++語言程序, 
——D類—— 
*.dat 任何地方 二進制數據文件, 
*.dat vcd光碟 vcd文件, 
*.dat 游戲中 存檔文件,如果游戲存檔退出後用dir/os顯示的最後一文件是 
*.dat,那麼它就有可能是存檔文件。 
*.dbf Foxbase dBase,Foxbase等的標准資料庫文件, 
*.ddi 壓縮文件,diskpe的壓縮文件,可由hd-還原 
*.dll windows\system (Dynamic Linked Libraty)Windows動態鏈接庫 
*.doc word 文本文件,(Document)Windows Word 文檔 
*.drv (Drive)驅動程序 
*.dsm mod 文件 
——E類—— 
*.eps PostScript所用的格式 
*.exe 任何地方 可執行文件, 
——F類—— 
*.fli 動畫文件,Auto Desk公司的動畫文件, 
*.fmt foxbase 格式文件,Foxbase中系統給用戶提供的編寫各種不同格式的文件, 
*.fnt windows 字體文件,(Font)Windows的字體文件, 
*.fox foxbase 程序文件,foxbase編譯過的*.prg程序文件 
*.frm Visual Basic VB系列的Form窗體文件, 
*.frm Foxbase 報表格式文件,Foxbase中的報表格式文件 
*.frm 注冊文件, 
*.fxp Foxpro 程序文件,Foxpro編譯過的*.prg程序文件 
——G類—— 
*.gb 網上常見 文本文件,gb格式的文本 
*.gif 網上常見 圖形文件,有256色,真彩,gif89等, 
——H類—— 
*.h tubro c c語言所需要的include的頭文件, 
*.hlp 任何地方 幫助文件, 
*.hpp c++ c++的頭文件 
*.htm internet 超文本文件, 
*.html internet 超文本文件, 
——I類—— 
*.ice 壓縮文件,由lha解壓 
*.icn windows 圖標文件,windows的圖標文件(Icon) 
*.ico windows 圖標文件,windows的圖標文件(Icon) 
*.idx Foxbase 索引文件, 
*.idxe Foxbase 索引文件, 
*.iff 圖形文件,AMIGAIFF格式文件 
*.img 磁碟鏡像文件,由hd-還原 
*.ini 任何地方 (Initial)初始化文件, 
*.ins 音色文件,Creative公司的音色文件, 
*.it Impulse Tracker moles(應該是一種聲音文件) 
*.izh 壓縮文件,由lha解壓 
——J類—— 
*.jpg 任何地方 圖形文件,依照jpeg壓縮規格的圖形文件, 
——K類—— 
——L類—— 
*.lbl Foxbase 標簽文件, 
*.lbm 圖形文件, 
*.lib 編程語言中 庫文件(library) 
——M類—— 
*.m3u mp3 列表文件,mp3 playlist(mp3播放文件列表文件) 
*.mbd Office 表格文件,Access的表格文件, 
*.mem Foxbase 內存變數文件,用來存放內存變數的文件 
*.mid 任何地方 midi文件, 
*.midi 任何地方 midi文件, 
*.mlv vcd mpeg文件, 
*.mod mod文件,protracker moles 
*.mov 多媒體中 動畫文件,壓縮率極大的格式 
*.mp2 聲音文件,壓縮率極大的格式 
*.mp3 mp3 聲音文件,壓縮率極大的格式 
*.mpe vcd mpeg文件, 
*.mpeg vcd mpeg文件, 
*.mpg vcd mpeg文件, 
*.mpv vcd mpeg文件, 
*.mtm mod 文件, 
——N類—— 
*.ndx Foxbase 索引文件, 
——O類—— 
*.obj 編程語言中 目標文件(Object) 
——P類—— 
*.pas pascal pascal語言程序, 
*.pbc 分布式程序庫, 
*.pbd 動態運行程序, 
*.pbm 圖形文件, 
*.pbr 資源文件, 
*.pcx 任何地方 圖形文件, 
*.pgm 圖形文件, 
*.pif windows (Program Information File)Windows執行dos程序的資訊文件, 
*.pls mp3 列表文件,mp3 playlist(mp3播放文件列表文件) 
*.png 圖形文件, 
*.prg Foxbase 程序文件,Foxbase的程序文件 
*.pwl win95,windows\*.pwl 口令文件,刪除後可取消windows開機用戶口令 
——Q類—— 
*.qid 線導文件, 
——R類—— 
*.reg 注冊表的備份文件, 
*.rle 圖形文件, 
——S類—— 
*.s3m Screamtracker Moles(應該也是一種聲音文件) 
*.scr windows 屏幕保護程序, 
*.stm Screamtracker Moles(應該也是一種聲音文件) 
*.sys 任何地方 設備驅動程序(系統文件) 這類文件含有關於硬體的說明. 
——T類—— 
*.tga 圖形文件, 
*.tif 圖形文件, 
*.tmp 幾乎任何地方,temp\*.tmp 臨時文件,非正常退出時產生的臨時文件,可刪除 
*.txt 任何地方 文本文件,記錄文本 
——U類—— 
——V類—— 
*.vol 任何地方 聲音文件, 
——W類—— 
*.wav 任何地方, 聲音文件, 
*.wmf 圖形文件, 
*.wps wps中,ucdos\*.wps wps 文件,記錄文本,表格 
*.wri 文本文件,Windows書寫器文件 
——X類—— 
*.xls Office 表格文件,Excel的表格文件, 
*.xm extended moles(應該也是一種聲音文件) 
——Y類—— 
——Z類—— 
*.zip 任何地方 壓縮文件, 
——其他—— 
*.%a% dos版wps中,wps\*.%a% 臨時文件,由於wps非正常退出產生的文件, 
*.%b% dos版wps中,wps\*.%a% 臨時文件,由於wps非正常退出產生的文件, 
~*.* 臨進文件,以 ~ 開頭的文件為臨時文件,可刪除 
補充:文件類型 擴展名及打開方式 
文檔文件 txt(所有文字處理軟體或編輯器都可打開)、doc(word及wps等軟體可打開)、hlp(adobe acrobat reader可打開)、wps(wps軟體可打開)、rtf(word及wps等軟體可打開)、htm(各種瀏覽器可打開、用寫字板打開可查看其源代碼)、pdf(adobe acrobat reader 和各種電子閱讀軟體可打開) 
壓縮文件 rar(winrar可打開)、zip(winzip可打開)、arj(用arj解壓縮後可打開)、gz(unix系統的壓縮文件,用winzip可打開)、z(unix系統的壓縮文件,用winzip可打開) 
圖形文件 bmp、gif、jpg、pic、png、tif(這些文件類型用常用圖像處理軟體可打開) 
聲音文件 wav(媒本播放器可打開)、aif(常用聲音處理軟體可打開)、au(常用聲音處理軟體可打開)、mp3(由winamp播放)、ram(由realplayer播放) 
動畫文件 avi(常用動畫處理軟體可播放)、mpg(由vmpeg播放)、mov(由activemovie播放)、swf(用flash自帶的players程序可播放) 
系統文件 int、sys、dll、adt 
可執行文件 exe、com 
語言文件 c、asm、for、lib、lst、msg、obj、pas、wki、bas 
映像文件 map (其每一行都定義了一個圖像區域以及當該區域被觸發後應返回的url信息) 
備份文件 bak(被自動或是通過命令創建的輔助文件,它包含某個文件的最近一個版本) 
臨時文件 $ $ $(word、excel等軟體在操作時會產生此類文件) 
模板文件 dot(通過word模板可以簡化一些常用格式文檔的創建工作) 
批處理文件 bat(在ms-dos中,bat文件是可執行文件,由一系列命令構成,其中可以包含對其他程序的調用)
