fputs_unlock undeclared

比较新版本的 clang 和 gcc 不支持函数的隐式声明。如果代码中包含对未声明的函数的使用,会出现如下错误:

 error: call to undeclared function 'fputs_unlocked'; ISO C99 and later do not support implicit function declarations

你可以给代码加上声明 int fputs_unlocked(const char *s, FILE *stream); 来解决问题

根据 manpage,https://linux.die.net/man/3/fputs_unlocked。 各个 IO 函数的 unlocked 变种是不应该被使用的,这些函数在将来可能会被废弃掉

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将值存储在文件中并从文件中获取值,可以使用C语言中的文件操作函数。下面是修改后的代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #define MAX_COMMAND_LENGTH 1000 #define FILE_NAME "tcp_command.txt" static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int SetTCPCommand(const char *command) { pthread_mutex_lock(&mutex); // 加锁 FILE *file = fopen(FILE_NAME, "w"); if (file == NULL) { printf("Failed to open file\n"); pthread_mutex_unlock(&mutex); // 解锁 return 0; } fputs(command, file); fclose(file); pthread_mutex_unlock(&mutex); // 解锁 return 1; } int GetTCPCommand(char *command) { pthread_mutex_lock(&mutex); // 加锁 FILE *file = fopen(FILE_NAME, "r"); if (file == NULL) { printf("Failed to open file\n"); pthread_mutex_unlock(&mutex); // 解锁 return 0; } fgets(command, MAX_COMMAND_LENGTH, file); fclose(file); pthread_mutex_unlock(&mutex); // 解锁 return 1; } ``` 使用示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char command[MAX_COMMAND_LENGTH]; // 设置值 const char *setCommand = "Hello, World!"; if (SetTCPCommand(setCommand)) { printf("Set command: %s\n", setCommand); } else { printf("Failed to set command\n"); } // 获取值 if (GetTCPCommand(command)) { printf("Get command: %s\n", command); } else { printf("Failed to get command\n"); } return 0; } ``` 在示例中,我们使用`SetTCPCommand`函数将命令写入文件,并使用`GetTCPCommand`函数从文件中读取命令。请确保在使用文件操作函数时,具有足够的权限来读写文件。 希望这个修改能满足你的需求!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值