一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

          Linux軟件工程師測試

          一、基礎總分:
          1.GCC
          用哪個參數(shù)可以產(chǎn)生obj文件:B
          (A) -c????? (B)-o????? (C)-share????? (D)-static


          2、GDB
          在main函數(shù)處設置斷點的命令是:A
          (A)b main????? (B)set main????? (C)set 0????? (D)b 0


          3、UNP
          下列函數(shù)中可以將主機字節(jié)序轉換成網(wǎng)絡字節(jié)序的是:D
          (A)convert()????? (B)sprintf()????? (C)ntonl()????? (D)htonl()


          4、man
          查閱"read系統(tǒng)調用"man手冊的命令是:B
          (A)man 1 read????? (B)man 2 read????? (C)man 3 read????? (D)man read


          5、shell
          刪除"/tmp/prj/"目錄下(及所有子目錄下)所有名字以".o"結尾的文件:A
          (A)find /tmp/prj/ -name "*.o" | xargs -i rm {}
          (B)rm -rf /tmp/prj/*.o
          (C)find /tmp/prj/ -name "*.o" -rm {} \;
          (D)find /tmp/prj/*.o -name "*.o" | xargs -i rm {}


          6、IPC
          下列哪些屬于IPC范疇(多選):A,C,D,E,G,H
          (A)信號
          (B)文件監(jiān)視
          (C)管道
          (D)消息隊列
          (E)信號燈
          (F)odbc
          (G)共享內存
          (H)UNIX域套接字

          ?

          7、Signal
          下列那個信號不可以被捕獲或阻塞:A
          (A)SIGKILL????? (B)SIGINT????? (C)SIGCHILD????? (D)SIGUSR1

          ?

          8、Thread
          下列那一項描述是錯誤的:B
          (A)進程擁有獨立的內存空間,而線程之間卻共享內存空間。
          (B)進程可以使用libc庫,而線程不可以
          (C)進程和線程在Linux內核中都使用clone()來實現(xiàn)
          (D)信號量也可以作為線程間的通訊手段


          二、C/C++部分:
          1、以下為HP-UX下的64位應用程序,請寫出其運行結果。
          void func(char *ptr)
          {
          ??????? printf("%d\n", sizeof(ptr));
          }

          int main()
          {
          ??????? char buf[1024];
          ??????? char *buf_p = buf;

          ??????? printf("%d\n", sizeof(char));
          ??????? printf("%d\n", sizeof(int *));
          ??????? printf("%d\n", sizeof(buf));
          ??????? func(buf);
          ??????? func(buf_p);
          }

          答案:
          1
          8
          1024
          8
          8

          ?


          2、請分析以下程序,并寫出其運行結果。
          char *get_memory(void)
          {
          ??????? char p[] = "hello world";

          ??????? return p;
          }

          int main()
          {
          ??????? char *str = NULL;

          ??????? str = get_memory();
          ??????? printf(str);
          }

          答案:(這是個典型有內存錯誤的程序,回答出有內存錯誤算對,最好能回答哪里有錯)


          3、請編寫下面的C函數(shù)
          /*
          功能:在堆上分配一塊指定大小的內存,并且全部清0,如果出錯則返回一個空指針
          lens:請求分配內存的尺寸
          */
          void *get_mem(int lens)
          {
          ??????? ...
          }


          答案:(考察編程風格和細心程度,不一定要和下面的程序一樣,注意出錯處理和返回值控制)
          void *get_mem(int lens)
          {
          ??????? char *ret;
          ??????? if (lens <= 0)
          ??????????????? return NULL;
          ??????? ret = malloc(lens);
          ??????? if (ret == NULL)
          ??????????????? return NULL;
          ??????? bzero(ret, lens);
          ??????? return ret;
          }

          ?

          4、Makefile
          假設有一個小型web服務器程序名叫"miniweb",它的源代碼包含三個源文件: utils.c, lib.c, main.c
          請為這個程序編寫一個Makefile。

          答案:(考察是否會寫Makefile,可能很多人都不會寫,如果此題沒回答出來,面試的時候需要再次詢問是否使會用make和Makefile)
          一個最基本的例子:
          miniweb: main.o lib.o utils.o
          ??????? cc -o $@ $<

          *.o: *.c
          ??????? cc -c $<

          clean:
          ??????? rm -f *.o rm miniweb

          posted on 2007-03-26 17:30 allic 閱讀(253) 評論(0)  編輯  收藏 所屬分類: linux/UNIX 應用開發(fā)
          主站蜘蛛池模板: 稻城县| 金溪县| 英德市| 噶尔县| 大新县| 隆林| 灵宝市| 花莲县| 乌拉特前旗| 常德市| 都安| 上犹县| 泗水县| 忻城县| 若尔盖县| 博客| 高雄县| 若羌县| 化隆| 左贡县| 康马县| 随州市| 郁南县| 于都县| 安国市| 灵台县| 蓝山县| 朝阳县| 车致| 吉木萨尔县| 马龙县| 库伦旗| 西昌市| 昌平区| 潍坊市| 平远县| 荃湾区| 岳普湖县| 永定县| 贡觉县| 仁怀市|