需要一些关于这个的建议,因为我正在努力实现并无法弄明白.
我有一个文件,在PC上更新,以指示系统运行和运行的时间.我正在写一个非常简单的linux控制台应用程序(最终将成为一个nagios插件).读取此文件并根据文件中的内容进行响应.
我是Linux上编程和使用C的全新手,所以请耐心等待,如果你能解释任何答案,我将非常感激.
基本上我想将包含5个字符的char数组转换为整数,但数组中的第5个字符始终是一个字母.所以从技术上讲,我想要做的就是将数组中的前4个字符转换为整数…如何?我试过多种方法但没有成功,我的问题是,目前我对语言没有很好的掌握,所以对它能做什么和不能做什么没有真正的想法.
这是我的程序的来源.
基本上buf数组将保存从文件中取出的字符串,看起来像这样
3455Y(数字将是随机的,但总是4个字符长).
很抱歉代码格式不佳,但我无法得到这个愚蠢的爱情窗口,也没有金钱来正确格式化….
include
include
include
include
include
include
define COPYMODE 0644
int main(int argc, char *argv[])
{
int i, nRead, fd;
int source;
int STATE_OK = 0;
int STATE_WARNING = 1;
int STATE_CRITICAL = 2;
int STATE_UNKNOWN = 3;
int system_paused = 0;
char buf[5];
int testnumber;
if((fd = open(argv[1], O_RDONLY)) == -1)
{
printf("failed open : %s", argv[1]);
return STATE_UNKNOWN;
}
else
{
nRead = read(fd, buf, 5);
}
close(source);
if (buf[4] == 'P')
{
printf("Software Paused");
return STATE_WARNING;
}
else
{
return STATE_OK;
}
time_t ltime; /* calendar time */
struct tm *Tm;
ltime=time(NULL); /* get current cal time */
Tm=localtime(<ime);
int test;
test = Tm->tm_hour + Tm->tm_min;
printf("%d", test);
printf("%d", strtoi(buf));
}