fdisk에 명령을 줄수 있는 C 프로그램...
글쓴이: sungjin / 작성시간: 수, 2004/06/30 - 5:32오후
[root@ParanR2 root]# fdisk /dev/hda The number of cylinders for this disk is set to 9733. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):
fdisk 를 실행 시키고 Command상에 n을 입력하는 기능과 같이
정해져 있는 파티션을 나눌 수 있는 C프로그램을 만들려고 합니다.
다시말하면, n을 입력하고, p를 입력하고 이런식의 순서대로
파티션을 나누는 프로그램입니다.
popen()을 통해서 fdisk를 실행시키고 읽어드린 데이터를 적당히
판단하여 구현할려고 했는데, man 페이지를 보니 popen은
unidirectional로만 설정하가능하더군요. 한번에 read또는 write만
가능하지 read, write가 동시에 가능하지 않더군요.
SYNOPSIS #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream); DESCRIPTION The popen() function opens a process by creating a pipe, forking, and invoking the shell. Since a pipe is by defi- nition unidirectional, the type argument may specify only reading or writing, not both; the resulting stream is cor- respondingly read-only or write-only.
그래서 이런기능을 구현할만한 방법에 대해서 조언을 구하고자 합니다.
Forums:
꼭 fdisk 를....^^?....
꼭 fdisk 를....^^?....
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
sfdisk
흠.. sfdisk를 사용하면 배치작업으로 일괄적으로 파티션을 나눌 수 있습니다.
참고 하세요.
Be Creative For Fun!!
어차피 pipe를 사용하신다면.일반적으로 사용하는 pipe를 사용
어차피 pipe를 사용하신다면.
일반적으로 사용하는 pipe를 사용하셔서
pipe을 오픈하시구.
fork 하신다음에..
dup시키시고.
자식에서 fdisk를 exec 시키면 될듯 합니다만.
GNU Parted
궁극적인 목적인 파티션 조작이라면 'GNU Parted'를 이용하세요.
http://www.gnu.org/software/parted/parted.html
Nevermind... :)
꼭 C 로 짜야하는 상황이 아니라면 shell로 하시는 것이 가장 편하지
꼭 C 로 짜야하는 상황이 아니라면 shell로 하시는 것이 가장 편하지 않을까요?
진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서
댓글 달기