編寫兩個不同的可執行程式,乙個開啟檔案,乙個讀檔案

2021-07-14 15:18:20 字數 1339 閱讀 5986

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系統呼叫核心處理函...