본문 바로가기

C언어

파일 생성,권한 변경, 소유자 변경 파일을 생성하고 권한과 소유자를 변경해보자 [파일생성]mkdir(경로 , 권한), 생성 실패시 -1 반환ex) mkdir("/data/temp", 0755); [권한변경]chmod(경로, 권한), 변경 실패시 -1 반환ex) chmod("/data/temp", 0755); [소유자변경]chown(경로, 사용자ID, 그룹ID), 변경 실패시 -1 반환ID 기억하기는 까다로우므로 사용자 아이디를 통해 아래처럼 ID 값을 얻어와 설정한다.ex) 사용자명이 user일 경우struct passwd *user_pw;user_pw= getpwnam("user");chown("/data/temp", user_pw->pw_uid, user_pw->pw_gid);
void value not ignored as it ought to be 컴파일 진행 중에 아래와 같은 에러가 발생 할 수 있습니다. void value not ignored as it ought to be 리턴값이 없는(void) 함수를 사용해 연산을 처리하려 할 경우 발생하는 오류로 보입니다. 제 경우에 아래와 같은 경우에 발생하더군요... if( function() ) function() 이 리턴값이 없는데 있는 줄 알고 if문으로 조건 확인을 시도했습니다. 저거 때문에 날린 시간이... ㅠㅜ
이중 포인터 간단정리 간만에 다시 C를 써야되는 일이 발생해서 요즘 쓰고있는데... 포인터를 또 까먹어서리 정리해 봤습니다.#include void main(){ int a1= 1; int *a2 = &a1; int **a3 = &a2; printf("a1:%d \n*a2:%d a2:%d \n**a3:%d *a3:%d a3:%d \n",a1,*a2,a2,**a3,*a3,a3); } [실행결과] 우선 a1은 1입니다. (여기서 부터 헷갈리면 난감함...) a2는 a1의 주소값을 가지고 있고, *a2는 a2가 가지고 있는 주소값이 가리키는 값 즉, a1이므로 1을 갖습니다. a3는 a2의 주소값을 가지고 있습니다. *a3는 a3가 가지고 있는 주소값이 가리키는 값 즉, a2이므로 a1의 주소값을 갖습니다. **a3는 *a3가 가..
2의 보수를 이용한 부호 바꾸기 C언어를 이용한 2의 보수 실습(?)을 해봅시다. 2의 보수 개념을 막 배우신 분들에겐 흥미로운 내용일 것 같네요. (윤성우 저자님의 열혈C 프로그래밍 책에서 코드를 인용했습니다.) #include int main() { int i; printf("정수 값을 입력하세요.\n"); scanf("%d",&i); i=~i; // 비트들을 뒤집음 i=i+1; printf("%d \n",i); return 0; } 재밌죠? ^^;;
컨볼루션 인코더 & 비터비 디코더 ver 0.5 정확하지 않은 코드일 수 있으니 참고용으로 보시기 바랍니다~#include #include #include #include #define SIGNAL_COUNT 100000 double gaussian(); double uniform(); // main 함수 ---------------------------------------- int main(void) { // 반복문용 변수들 int i, i1, diff; int j; int k, m; int l; int posi; int check1 = 1; int check2; int error_count; // 에러체크 double ber[11]; // BER int con_length; int decision; double EbN0, noise_pow; in..
QPSK //QPSK // 0,0 -> (-1-i)*0.707106781 // 0,1 -> (-1+i)*0.707106781 // 1,0 -> (1-i)*0.707106781 // 1,1 -> (1+i)*0.707106781 #include #include #include #include #define SIGNAL_COUNT 1000000 struct complex_1 { double real; //실수 double img; //허수 }; double gaussian(); double uniform(); typedef struct complex_1 complex_1; // main 함수 ---------------------------------------- int main(void) { int i, j; // ..
BPSK #include #include #include #include #define SIGNAL_COUNT 1000000 double gaussian(); double uniform(); // main 함수 ---------------------------------------- int main(void) { int i, j; // 반복문용 변수 int error_count; // 에러체크 double ber[11]; //BER double EbN0, noise_pow; int* s_d_signal; double* s_a_signal; double* r_a_signal; int* r_d_signal; int state; // 에러확인 변수 FILE * file = fopen("output.txt", "wt")..
매크로(macro) #define #define은 전처리기(Preprocessor)에서 처리하는 매크로(Macro) 중 하나입니다. 전처리기는 컴파일(Complie)하기 전에 처리됩니다. 기능은 특정 글자를 정해준 글자로 교체하는 간단 명료한 방식입니다. 예제를 보면 손쉽게 이해가 가능합니다. 똑같은 코드를 #define을 사용한 것과 안한 것으로 표현해 보겠습니다.// #define 사용 #define verylong "abcdefghijklmnopqrstuvwxyz \n" int main(){ printf(verylong); printf(verylong); printf(verylong); printf(verylong); printf(verylong); return 0; } // #define 사용 안함 int main(){ print..