在 linux 中使用 c 编写服务器-客户端程序时,我需要将客户端进程的 pid 附加到 fifo 文件名(将用于将数据发送回客户端的 fifo 文件)。 (服务器客户端程序的概念是让服务器从客户端读取数据,计算数据,并将数据发送回客户端以显示它。)我希望为多个客户端和单个服务器执行此操作。这样,每次执行客户端文件时,我都可以拥有不同的 fifo 文件。为了实现这一点,我需要服务器将客户端进程的 pid 附加到 fifo 文件名。(例如,如果 fifo 文件名为“myfifo”并且客户端的 pid 为“2891”,则生成的 fifo 文件名应为“myfifo2891') 谁能帮我实现这个目标?如何将 pid 附加到 fifo 文件名?我正在考虑为它使用一个结构。
最佳答案
您可以使用 snprintf() 来实现: http://www.cplusplus.com/reference/cstdio/snprintf/
int snprintf ( char * s, size_t n, const char * format, ... );
所以在你的情况下:
char filename_buffer[64];
int string_len= 0;
pid_t pid = getpid();
string_len = snprintf(filename_buffer, sizeof(filename_buffer),
"%s%d", filename, (int) pid);
if (string_len < 0 || string_len > sizeof(filename_buffer)) { /* Handle error here */ }
关于c - 将 pid 附加到文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34260350/