336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

방법 1. 


#define _CRT_SECURE_NO_WARNINGS 을 추가 해준다.



방법 2. 


프로젝트 속성 > C/C++ > 전처리기 > 전처리기 정의 (편집 선택) > _CRT_SECURE_NO_WARNINGS 을 추가 한다.



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. time.h에 포함되어 있다.


2. 세계표준시 1970년 1월 1일 0시 0초 부터 현재까지 경과된 초를 알려준다.


3. 원형 :  time_t time( time_t *timer);


4. time_t형은 내부적으로 long형으로 선언되어 있다.




소스코드 : main.c


#include<stdio.h>

#include<time.h>


int main(void)

{

time_t now;


time(&now);


printf("국제 표준시간 기준으로 1970년 1월 1일 부터 현재까지 경과된 초 : %d \n", now);


system("pause");

return 0;

}





결과 : 



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. direct.h 포함되어 있음


2. 원형 : 

- 작업중 드라이버 구하기 : int _getdrive(void);

- 작업중인 드라이버 변경 : int _chdrive(int drive);


3.  A dirve는 1번이며 순서대로 번호가 된다. 따라서 Z dirve 26번이 된다.


4. 드라이버 변경시 성공은 0 실패는 -1을 리턴한다.





소스코드 : main.c


#include<stdio.h>

#include<direct.h>


int main(void)

{

int CurrentDrive = 0;

int ChangeDrive = 4; // A = 1 , B = 2, C = 3, D = 4


CurrentDrive = _getdrive();

printf("현재  %c dirve에서 작업중  입니다.\n", ('A' - 1) + CurrentDrive);

printf("changed %c drive", ('A' - 1) + ChangeDrive);


if (_chdrive(ChangeDrive) == 0)

{

puts("change success");

CurrentDrive = _getdrive();

printf("현재  %c dirve에서 작업중  입니다.\n", ('A' - 1) + CurrentDrive);

}

else

{

perror("작업중인 드라이버 변경 실패");

}


system("pause");

return 0;

}





결과:




336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. direct.h 에 포함되어 있습니다.


2. 원형 : 

 -현재 작업중 디렉터리 : char* _getcwd(char* buffer, int maxlen);

-디렉터리 변경 : int _chdir(char* buffer);  // return -1 error, 0 success




소스코드 : main.c


#include <stdio.h>

#include <stdlib.h>//_MAX_PATH 사용하기 위해 선언

#include <direct.h>


int main(void)

{

char currentPath[_MAX_PATH];

const char *pChangePath = "C:\\Users\\junmo\\Desktop\\300\\123\\ChangeDir";


_getcwd(currentPath, _MAX_PATH);


puts(currentPath);

puts("change Path");

_chdir(pChangePath);

_getcwd(currentPath, _MAX_PATH);

puts(currentPath);


system("pause");


return 0;

}




결과 :



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 

1. direct.h 에 포함되어 있습니다.


2. 원형 

- 디렉터리 생성 : int _mkdir(const char* dirname);

- 디렉터리 삭제 : int _rmdir(const char* dirname);


3. 에러시 -1을 반환합니다.




소스코드 : main.c

#include<stdio.h>

#include<direct.h>



int main(void)

{

//생성

const char* pPathDir = "C:\\Users\\junmo\\Desktop\\300\\122\\TestDir";


if (_mkdir(pPathDir) == -1)

{

perror("Dir 생성 실패");

}

else

{

puts("Dir 생성 성공");

}


// 삭제

if (_rmdir(pPathDir) == -1)

{

perror("Dir 삭제 실패");

}

else

{

puts("Dir 삭제 성공");

}



system("pause");

return 0;

}





결과 : 




336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. stdio.h 에 포함 되어 있습니다.


2. 파일을 삭제합니다.


3. 원형 : int remove(const char *path);





소스코드 : main.c


#include<stdio.h>



int main(void)

{

char *filePath = "C:\\Users\\junmo\\Desktop\\300\\121\\file.txt";

FILE *fp = NULL;


fopen_s(&fp, filePath, "w+");//파일을 생성


if (fp != NULL)//파일 생성되었다면

{

fclose(fp);//파일 닫기

}


//속성 값 변경

if (remove(filePath) != 0)

{

perror("삭제 실패");

}

else

{

puts("삭제 성공");

}



system("pause");

return 0;

}







결과 :



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. io.h, sys/stat.h 를 포함 합니다.


2. 파일을 보호하거나 사용해야 할때 이용합니다.


3. 원형 : int _chmod (const char* filename, int pmode);


4. 모드 : 

- _S_IREAD 읽기 전용 모드

- _S_IWRITE 일반 모드




소스코드 : main.c

#include<stdio.h>

#include<io.h>

#include<sys/stat.h>


int main(void)

{

char *filePath = "C:\\Users\\junmo\\Desktop\\300\\120\\file.txt";

FILE *fp = NULL;


fopen_s(&fp, filePath, "w+" );//파일을 생성


if (fp != NULL)//파일 생성되었다면

{

fclose(fp);//파일 닫기

}


//속성 값 변경

if (_chmod(filePath, _S_IREAD) != 0)

{

perror("파일 읽기 모드 설정 실패");

}

else

{

puts("읽기 모드 설정");

}



system("pause");

return 0;

}




결과 :


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. stdio.h 에 포함되어 있다.


2. 원형 : int rename(const char *oldname, const char *newname);


3. path와 이름을 같이 사용 해야합니다.


4. 0을 리턴할 경우 정상적으로 이름이 변경된 것입니다.




소스코드 : main.c


#include<stdio.h>

#include<io.h>

int main(void)

{

FILE *fp = NULL;

char *oldName = "C:\\Users\\junmo\\Desktop\\300\\119\\file.txt";

char *newName = "C:\\Users\\junmo\\Desktop\\300\\119\\test.txt";


fopen_s(&fp, oldName, "w+");


if (fp == NULL)

{

perror("C:\\Users\\junmo\\Desktop\\300\\119\\file.txt");

}

else

{

fclose(fp);


if (rename(oldName, newName))

{

perror("C:\\Users\\junmo\\Desktop\\300\\119\\file.txt");

}

else

{

if (_access(newName, 0))

{

puts("test.txt 파일이 존재 하지 않습니다.");

}

else

{

puts("test.txt 파일이 존재 합니다");

}

}


}


system("pause");

return 0;

}




결과 :



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. 파일이 존재 유무를 확인 합니다.


2. io.h 에 포함되어 있습니다.


3. 원형 : int _access(const char * path, int mode);


4. 반환 값은 0이 아니면 존재 하지 않습니다.


5. mode  

- 0 : 파일 및 디렉터리가 존재하는지 검사하는 경우.

- 2 : 파일을 쓰기 위해 개방할 수 있는지 검사하는 경우.

- 4 : 파일을 읽기 위해 개방할 수 있는지 검사하는 경우.

- 6 : 파일을 읽기 및 쓰기 위해 개방할 수 있는지 검사하는 경우.




소스코드 : main.c


#include <stdio.h>

#include<io.h>


int main(void)

{

char *path = "C:\\Users\\junmo\\Desktop\\300\\118\\main.c";


if (_access(path, 0) == 0)

{

printf("경로 : %s \n파일이 존재 합니다.\n", path);

}


system("pause");

return 0;

}




결과:



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. 원형 : char* tmpnam(char *string)


2. 임시 파일 : 어떤 프로그램은 실행되는 동안 하나 이상의 임시 파일을 사용합니다. 임시 파일은 프로그램에 의해서 생성되고, 프로그램이 실행되는 동안 다른 목적으로 사용되다가 프로그램이 종료 되기 전에 삭제 되는 파일입니다. 임시 파일을 생성 할때에는 나중에 삭제할 것이므로 파일의 이름에 대해서는 신경쓰지 읺습니다. 그러나 이미 사용중이 아닌 파일의 이름을 사용해야 합니다. C언어에서는 존재하는 어떤 파일과도 충돌하지 않는 파일의 이름을 생성하는 tmpnam()함수가 사용됩니다.


3. visual studio 10 이상 부터는 전처리기에 _CRT_SECURE_NO_WARNINGS; 를 추가 해줘야 사용 할수 있습니다.




소스코드 :


#include<stdio.h>


int main(void)

{

int i  = 0;

char buffer[100] = { 0, };

char* path = NULL;


for (i = 0; i < 10; i++)

{

tmpnam(buffer);

puts(buffer);

}


for (i = 0; i < 10; i++)

{

path = _tempnam("", "test");

puts(path);

}


system("pause");

return 0;

}



결과:





+ Recent posts