2、編寫兩個不同的可執行程式,名稱分別為a和b,b為a的子程序。在a程式中呼叫open函式開啟a.txt檔案。在b程式不可以呼叫open或者fopen,只允許呼叫read函式來實現讀取a.txt檔案。(a程式中可以使用 fork與execve函式建立子程序)。
makefile 檔案
.suffixes:.c .o
cc=gcc
srcs1=homework.c
srcs2=homework1.c
objs1=$(srcs1:.c=.o)
objs2=$(srcs2:.c=.o)
exe1=homework
exe2=homework1
all: $(objs1) $(objs2)
$(cc) -o $(exe1) $(objs1)
$(cc) -o $(exe2) $(objs2)
@echo '----------------ok------------'
.c.o:
$(cc) -wall -g -o $@ -c $<
clean:
-rm -f $(objs)
-rm -f core*
開啟檔案的程序
#include #include #include #include #include #include #include #include #include int main(int arg, char *args)
if (id > 0)
if (id == 0)
; sprintf(s, "%d", fd);
char *argv = ;
//char *envp = ;
execve("homework1", argv, null);
} return exit_success;
}
讀檔案的程序
#include #include #include #include #include #include #include #include #include int main(int arg, char *args)
printf("%s\n", args[0]);
printf("%s\n", args[1]);
int fd = atoi(args[1]);
char buf[100] = ;
read(fd, buf, 100);
close(fd);
printf("%s\n", buf);
return 1;
}
linux 把可執行程式做成乙個服務
linux 把可執行程式做成乙個服務 把可執行程式做成乙個服務 在linux系統啟動的時候,我們可以看到很多服務性程式乙個接乙個的被啟動 就是那些後面有乙個蘭色 ok 的行 這些在後台執行的程式為我們使用計算機起了很重要的作用,以這種方式執行的程式有以下特點 開機啟動,關機停止 廢話!關機了還執行啊...
用Delphi產生乙個最小的可執行程式
用delphi產生乙個最小的可執行程式 曾經在網上看到有人說delphi能夠產生大小只有16k的win32應用程式,而我自己曾經編寫過的這種可執行檔案大小則是在17k左右,因而我一度猜想delphi恐怕也只能將 優化到這種程度了。最近由於測試的目的重新把這個程式寫了一遍,才發現利用一些技巧,還能夠將...
Linux核心如何裝載和啟動乙個可執行程式
linux核心如何裝載和啟動乙個可執行程式 沙雨濟一 實驗目的 理解編譯鏈結的過程和elf可執行檔案格式 程式設計使用exec 庫函式載入乙個可執行檔案,動態鏈結分為可執行程式裝載時動態鏈結和執行時動態鏈結,程式設計練習動態鏈結庫的這兩種使用方式 使用gdb跟蹤分析乙個execve系統呼叫核心處理函...