42서울을 찾아보니 C언어를 터미널을 이용해 출력하는걸 과제로 그리고 시험으로 본다고
찌라시(?)가 돌아서 관련 공부를 하고 정리해보는중이다!
main함수를 적을때 그냥 vsc에서는 int main(void)로 항상 적어왔다!!
하지만 이번 리눅스에서는 main에 인자를 전달하고 받아서 활용도 가능해야하기에
int main(int argc, char*argv[]) 로 적기도 한다!!!!
int argc -> 터미널에서 적는 인자의 개수(나 자신도 포함!)
char *argv[] -> 터미널에서 적은 인자들의 주소가 이곳에 들어감!(나 자신이 제일 먼저 들어감!)
ex) argv[0] -> bb
#include<stdlib.h>
int main(int argc, char* argv[]) {
for(int i=0; i<argc; i++) {
printf("%d ==> %s \n", i, argv[i]);
}
}
gcc bb.c -o bb
./bb 20 30
// 실행결과
0 ==> bb
1 ==> 20
2 ==> 30
차고로 무조건 char*여서 문자열로 들어간다!!
ssize_t write(int fd, const void *buf, size_t n);
// 파일 디스크럽터 fd를 열고 buf에 있는 내용을 n만큼 규격에 맞게 출력한다!
#include<unistd.h>
void print_alphabet(void) {
char c;
c = 'a';
while(c<='z') {
write(1,&c, 1);
c++;
}
}
#include<unistd.h>
void print_number(void) {
char n[1] = {'0'};
while(n[0] <= '9') {
write(1,n,1);
n[0]++;
}
}