小编Kri*_*aan的帖子

将Linux C Char数组转换为Int

需要一些关于这个的建议,因为我正在努力实现并无法弄明白.

我有一个文件,在PC上更新,以指示系统运行和运行的时间.我正在写一个非常简单的linux控制台应用程序(最终将成为一个nagios插件).读取此文件并根据文件中的内容进行响应.

我是Linux上编程和使用C的新手,所以请耐心等待,如果你能解释任何答案,我将非常感激.

基本上我想将包含5个字符的char数组转换为整数,但数组中的第5个字符始终是一个字母.所以从技术上讲,我想要做的就是将数组中的前4个字符转换为整数...如何?我试过多种方法但没有成功,我的问题是,目前我对语言没有很好的掌握,所以对它能做什么和不能做什么没有真正的想法.

这是我的程序的来源.

基本上buf数组将保存从文件中取出的字符串,看起来像这样

3455Y(数字将是随机的,但总是4个字符长).

很抱歉代码格式不佳,但我无法得到这个愚蠢的爱情窗口,也没有金钱来正确格式化....

include <fcntl.h>
include <unistd.h>
include <stdio.h>
include <stdlib.h>
include <time.h>
include <string.h>

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, …
Run Code Online (Sandbox Code Playgroud)

c integer char

4
推荐指数
1
解决办法
1万
查看次数

linux命令行,密码保护文件使用脚本

对于linux脚本来说真的很新,所以我想我会问,而不是浪费时间把我的头发拉出来.

我有一个简单的脚本,备份我的Linux盒子上的文件夹的内容,并将其移动到S3存储,我希望这个脚本创建一个zip文件和密码保护它没有任何干预我.

我明白了

zip myarchive.zip /var/www/* -e 
Run Code Online (Sandbox Code Playgroud)

但无法解决我应该把密码设置在哪里阻止它提示我.

谢谢克里斯

linux zip command-line

4
推荐指数
1
解决办法
6693
查看次数

为什么atoi会返回随机数?

我试图从文本文件中读取数据(时间).并将其转换为可以DiffTime到当前系统时间的东西.

我现在已经非常接近正常工作,我可以品尝它,但我遇到了一个我无法解决的问题.(我对C语言有一个非常基本的把握).

此程序从文本文件中读取数据,将其拆分为两个char数组,然后尝试将atoi其转换为整数.但是,我在第二次atoi通话时遇到问题.

从最下面的两个printf陈述,我应该得到:

12  
34

但由于某种原因,我得到了这些方面的东西.

12  
3412

我认为它atoi超出了其中一个char数组的边界,或者我的char数组太长或太短.无论哪种方式,我都无法理解正在发生的事情.

#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define COPYMODE 0644

int main (int argc, char *argv[]){
    int  i, nRead, fd;

    int  source;
    int  ihour;
    int  imin;

    int  STATE_OK = 0;
    int  STATE_WARNING  = 1;
    int  STATE_CRITICAL = 2;
    int  STATE_UNKNOWN  = 3;
    /* indicates if system is paused 1 = System is paused, 0 = System running …
Run Code Online (Sandbox Code Playgroud)

c integer atoi

0
推荐指数
2
解决办法
816
查看次数

标签 统计

c ×2

integer ×2

atoi ×1

char ×1

command-line ×1

linux ×1

zip ×1