문자열을 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);
}
*관련 교육을 찾으신다면 리얼리눅스 교육과정 중 리눅스 시스템 핵심정리 수업을 추천드립니다.
Real Linux | 최신트렌드 리눅스 전문교육|임베디드|서버
직장인을 위한 리눅스교육
reallinux.co.kr
'리눅스 Q&A' 카테고리의 다른 글
Ubuntu 22.04 + VirtualBox 부팅중 amd_cpuid4 관련 커널패닉(kernel panic) 문제 해결 방법 (0) | 2023.11.22 |
---|---|
리눅스 세그멘테이션 오류 (NULL pointer exception) : fopen() 실패이후 fclose()를 부르면 생기는 문제 (0) | 2023.09.19 |
임베디드 개발자 채용과 전망에 대한 생각 (0) | 2023.09.19 |
리눅스 C 프로그래밍 : 폴더 경로명 날짜변수로 open 하는 방법 (0) | 2023.09.11 |
도커 볼륨 -v, --volume 옵션 으로 특정 확장자 파일을 지정할수있나요 ? (0) | 2023.09.11 |