期間更改進程名所以我想在C程序的進程的名稱從crystal_capture改變crystal_captured,它似乎是想保留舊的進程名(crystal_capture)。Linux下C:編譯
這裏是makefile。
CC=gcc
CFLAGS=-c -Wall
MSFLAGS=-lpcap -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -L/usr/lib/arm-linux-gnueabihf -lmysqlclient -lpthread -lz -lm -lrt -ldl
CAPTURE=crystal_captured
all: $(CAPTURE)
$(CAPTURE): parser.o $(CAPTURE).o
$(CC) $(MSFLAGS) parser.o $(CAPTURE).o -o [email protected]
$(CAPTURE).o: $(CAPTURE).cpp
$(CC) $(CFLAGS) $(MSFLAGS) $(CAPTURE).cpp
parser.o: parser.c
$(CC) $(CFLAGS) parser.c
clean:
rm -rf *.o $(CAPTURE)
命令 make; sudo ./crystal_captured; ps -A | grep crystal
眼看 crystal_capture
那麼,有沒有反正我可以進程的名稱從編譯更改,而不必去到代碼。
「這似乎是想要」很含糊。究竟發生了什麼,你會得到什麼輸出?例如,我希望在大多數系統上寫入'/ bin'會遇到權限問題。 – unwind
這似乎沒問題。它應該產生/ bin/program_name如果你有權限寫在那裏(通常只有root可以做到這一點)。究竟發生了什麼? (儘管習慣上將可執行文件輸出到當前目錄,而是提供一個安裝目標,將可執行文件放在例如/ bin文件夾中) – nos
@unwind @nos是的,我正在編譯爲bin。我將在未來創建一個安裝目標來實現這一目標,但目前它並不是真的需要。但無論如何,發生的一切都是在/ bin /中顯示一個新的可執行文件(使用新名稱)。但是,當我運行它,然後運行'ps -A'它會顯示出舊的進程名稱。 – dostrander