WebBench icon indicating copy to clipboard operation
WebBench copied to clipboard

Ask about the purpose and meaning of some code

Open ucsk opened this issue 5 years ago • 1 comments

This was the first project I studied, probably because of my limited ability, and I found that some places were not well understood. The following three points are some of my questions. Thank you for your guidance.

(1) Why isn't pid < 3 here? Is there any special meaning for pid being 2? https://github.com/EZLippi/WebBench/blob/b1acf3c01cc914729fe188dfc8ed761858028d4f/webbench.c#L411-L416

(2) Why does the bench() function return i? Isn't this the speed value that the parent process successfully read the last time? Could I change the program to return 0? https://github.com/EZLippi/WebBench/blob/b1acf3c01cc914729fe188dfc8ed761858028d4f/webbench.c#L435 (3) Add close(sock); is it more rigorous? https://github.com/EZLippi/WebBench/blob/b1acf3c01cc914729fe188dfc8ed761858028d4f/socket.c#L54-L55

ucsk avatar Mar 05 '20 14:03 ucsk

This was the first project I studied, probably because of my limited ability, and I found that some places were not well understood. The following three points are some of my questions. Thank you for your guidance.

(1) Why isn't pid < 3 here? Is there any special meaning for pid being 2? https://github.com/EZLippi/WebBench/blob/b1acf3c01cc914729fe188dfc8ed761858028d4f/webbench.c#L411-L416

(2) Why does the bench() function return i? Isn't this the speed value that the parent process successfully read the last time? Could I change the program to return 0? https://github.com/EZLippi/WebBench/blob/b1acf3c01cc914729fe188dfc8ed761858028d4f/webbench.c#L435

(3) Add close(sock); is it more rigorous? https://github.com/EZLippi/WebBench/blob/b1acf3c01cc914729fe188dfc8ed761858028d4f/socket.c#L54-L55

My personal opinion: (1): Because in common Linux operating systems, the PID of 0 and 1 have been occupied by the process operating system and the software which cooperates with the operating system.

(2): Currently, I'm facing the same problem with you, and I think you are true.

(3): Use man 3 connect, and I have found this sentenceAPPLICATION USAGE: If connect() fails, the state of the socket is unspecified. Conforming applications should close the file descriptor and create a new socket before attempting to reconnect. So I agree with you.

WeiHea avatar Sep 22 '21 17:09 WeiHea