gpt4 book ai didi

c - 文件操作写入不会在新行中发生

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:21 26 4
gpt4 key购买 nike

您好,下面的代码示例似乎有一些问题,或者它必须对操作系统内部进行一些处理。

    #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

static void usage();
#define MONC_AM_CONF "/tmp/monc.conf"

int main(int argc, char **argv)
{
int ch;
char list[200];
int len;
int fd;

memset(list,0,200);
if (argc < 11) {
usage();
exit(1);
}

while ((ch = getopt(argc, argv, "N:S:P:H:R:")) != -1) {
switch (ch) {
case 'N':
len = strlen(optarg) + 2;
sprintf(list,"%s::",optarg);
break;
case 'S':
sprintf(list+len,"%s::",optarg);
len = len + strlen(optarg) + 2;
break;
case 'P':
sprintf(list+len,"%s::",optarg);
len = len + strlen(optarg) + 2;
break;
case 'H':
sprintf(list+len,"%s::",optarg);
len = len + strlen(optarg) + 2;
break;
case 'R':
sprintf(list+len,"%s ",optarg);
len = len + strlen(optarg);
break;
default:
printf ("You specified a parameter I don't "
"know about.\n");
break;
}
}
argc -= optind;
argv += optind;

printf("Total length of string is %d\n",len);
printf("The string is %s\n",list);

fd = open(MONC_AM_CONF, O_WRONLY|O_CREAT|O_APPEND, 0644);
lseek(fd, 0,SEEK_END);
write(fd,list,len);
close(fd);

return 0;
}

static void usage()
{
printf("Please provide the command in correct format\n");
printf("monc_am_config -N <Comp_Name> -S <Start Script Path> -P <Stop Script Path> -H <HealthCheck Script Path> -R <Recovery Policy>\n");

return ;
}

当我发出命令时,我每次都得到不同的输出文件。我期望每次执行该程序时都应将信息写入新行,但它正在写入文件中的同一行。

请帮忙。

最佳答案

您应该在列表中附加“\n”,即

list[len++] = '\n';

关于c - 文件操作写入不会在新行中发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3377419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com