본문 바로가기
리눅스 Q&A

문자열을 int 숫자로 변경하는 함수 atoi() 사용법

by reallinux1 2023. 9. 19.

문자열을 int 숫자로 변경하는 함수 atoi() 사용법

 

Q: 위와 같이 출력하려고 코드를

void fork16(){

if(fork()==0){

printf("Child1: pid=%d pgrp=%d",getpid(),getpgrp());

if(fork()==0){

printf("Child2: pid=%d pgrp=%d",getpid(),getpgrp());

}

while(1);

}

}



이밑에는 main(int argc char * argv[])

atoi(argv[1]==16)

fork16();

이렇게 해서 main에 인자값 넘기면 실행하게 하였는데
이렇게하고 ./fork 16 넣으니까 아무것도 출력이 안뜹니다. 뭐가 잘못됐을까요 ?
다른 fork 함수들은 실행 잘됩니다.

 

A: 안녕하세요. 리얼리눅스 입니다.
atoi() 함수를 잘못 사용하셨습니다.

atoi() 함수는 인자(input)를 문자열(char *) 로받는데
보내주는 코드는 atoi(argv[1] == 16) 으로 조건문을
안에 넣어서 코드를 구성하였습니다.

따라서 (예를 들면) 아래처럼 코드가 바뀌어야 할것같습니다.

 

int val = atoi(argv[1]);

if (val == 16) {

// 원하는 코드를 작성

}

아래는 atoi() 간단한 예제코드이니 참고하시기 바랍니다.

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[])

{

int val;

char *str = "1234";

val = atoi(str);

printf("%d\n", val);

}

 


​*관련 교육을 찾으신다면 리얼리눅스 교육과정 중 리눅스 시스템 핵심정리 수업을 추천드립니다.

https://reallinux.co.kr/

 

Real Linux | 최신트렌드 리눅스 전문교육|임베디드|서버

직장인을 위한 리눅스교육

reallinux.co.kr