프로그래밍 QnA

xoduddk123의 이미지

하위폴더삭제중 2개를 제외하고 삭제하려면 어떻게 해야하나요 ?

rm -rf `ls | find /root/aaa/* -name ABC -prune -o -print`

위와같이 /root/aaa/ 의 하위 파일들중 ABC라는 폴더를 제외하고는 전부다 삭제하는 쉘스크립트는 사용하고있습니다.

그런데 여기에 ABC라는 폴더와 123이라는 폴더 2개를 남겨두고 삭제하고싶다면

저 위의 스크립트 중에 어떻게 추가시켜야 해당하는 작업을 할수있나요??? 엉청 간단할거같은데. . . .

perade의 이미지

VFS에서 super_block struct, inode 등의 값을 직접 볼 수 있는 방법이 없을까요?

안녕하세요.

요즘 linux공부를 하고 있는데, 파일을 만들고 open(), reade(), close()함수 등을 사용할 때 task_struct에서 file_struct, inode, dentry, super_block까지의 흐름과 값을 직접

확인해 보고 싶은데, 단순히 C 프로그래밍으로는 저 구조체들에 접근하는 방법을 잘 모르겠더군요.

저 구조체 내부의 값을 직접 확인할 수 있는 방법에는 뭐가 있을까요?

아니면 C 프로그래밍이 아니더라도 확인이 가능할까요?

많은 답변 부탁드립니다~

dltkddyd의 이미지

클래서 정의와 구현 분리해서 컴파일했는데요, 컴파일시 구현 파일도 꼭 언급해야만 하는 건가요.

position.h 파일에 Position 클래스를 선언, 정의하고 position.cc 파일에 그 멤버함수를 정의했습니다. 다음과 같이요. 그런데 컴파일시 꼭

g++ -std=c++0x -o test1 test1.cc position.cc

이런 식으로 position.cc 클래스 구현파일도 언급하는 것이 올바른 컴파일 방법인지 궁금합니다. 구현파일을 직접 언급하지 않고 그냥

g++ -std=c++0x -o test1 test1.cc

라고 언급해서 컴파일을 완수할 수 있는 방법은 없을까요? 코드는 아래와 같은데, 각 파일에 내용을 올바르게 배분한 것인지도 궁금합니다.

-position.h-

morecs의 이미지

리눅스의 심도 있는 포크!!

서버에 클라이언트가 소켓으로 접속할 경우 서버는 fork해서 프로세스를 생성하여 각 클라이언트들과 연결하여 멀티 프로세스를 만들려고 합니다.
근데 fork를 하면 메모리가 복사되어 변수 값들을 공유할 수가 없는데 서버에서 어떠한 값을 누적하고 있고 이러한 값을 각 클라이언트에게 알려줄려고 하는데
좋은 방법이 없을까요?

각 프로세스들이 계산하여 값을 누적시켜도 그 프로세스 안에서만 누적이 되고 부모 자식 간의 프로세스 끼리도 공유가 되지 않아 누적이 이루어지지 않네요..
파이프로 전달하는 것도 최초 포크할 때 전달이 되고 그 뒤부터는 부모 자식간의 파이프 연결도 되지않고..
어디서부터가 잘 못된건지..
어떻게 풀어가면 좋을지 조언 부탁드립니다.

show9314의 이미지

네트워크 프로그래밍에서 루프백 주소 말고 다른 노드의 IP주소로 연결 문제 (리눅스 기반)

안녕하세요

학교에서 네트워크 보안 관련 프로그래밍 과제로 파일을 암호화해서 보내고 받아서 복호화하는 TCP기반의 서버, 클라이언트 프로그램을 작성하였습니다.

제 개인 VM웨어에서 우분투 14.04 LTS 64비트 운영체제를 설치하여 서버와 클라이언트 프로그램을 작성하였습니다.

기존에 실행시, 클라이언트 프로그램에서 서버 주소로 127.0.0.1 (루프백) 주소를 넣어서 실행하여 문제가 없었습니다.

그런데 데모를 할때는 다른컴퓨터에서 해야하는 상황입니다.

그래서 제 VM웨어 와 학교 리눅스 서버 간에 파일을 주고받게 데모를 하려고 하는데

각각의 리눅스에서 ifconfig를 이용하여 IP주소를 알아낸 다음에 그 IP주소를 이용하여 서버와 클라이언트 프로그램간의 연결을 시도했는데

VM웨어에서 클라이언트 실행, 학교서버에서 서버 실행
VM웨어에서 서버 실행, 학교서버에서 클라이언트 실행

위 두가지 모두 연결이 되지 않습니다.

혹시몰라서 윈도우 방화벽은 꺼놓은 상태구요..

how4565의 이미지

getopt 사용법

getopt로 스크립터 파일을만들고있는데 오류가납니다

getopts로 작성한 파일은 잘 돌아가나

=============================
set-- `getopt -q ab:c: $@`

for OPT in $@
do
case $OPT in
-a) echo " hello " ;;
-b) cat $1 ;;
-c) touch $2 ;;
--) shift
break;;
esac
shift
done
=================================

대충요약해서 말하면 그냥 에코를 이용한 출력시 에러가없는데
-b -c 옵션처럼 파일을만들거나 볼려고하면 안됩니다 어떻게해야하나요??

BrownBear의 이미지

이게 공백인가요??

CreateMailSlot을통해서 자료를 주고받는걸 시연했는데 이상하게뜹니다.

아래는 소스코드입니다.

Client.cpp

BrownBear의 이미지

char* -> LPCTSTR

char*을 서로 합치는건 알겠는데 char배열을 LPCTSTR로 바꾸려니 마땅한 방법이 보이지않습니다. 그냥 (char*)이런식으로하니깐 삑사리나고

방법이 없을까요?

BrownBear의 이미지

누가 C4251 Warning를 시원하게 해결해주실분 없나요???

몇시간째 끙끙거리면서 해결방법을 찾아도 도무지 나오지 않습니다.

MailSlot.cpp파일과 MailSlot.h파일이 있습니다. 그리고 프로젝트는 Dynamic Link Library(.dll , .lib)를 생성하려는 목적을 가지고 있습니다.

아래는 MailSlot.h 파일입니다. 이 파일은 MailSlot.cpp에 존재하는 함수, 변수들을 정의해놓았습니다.

#pragma once

#include
#include

using std::string;

yann8166의 이미지

정수형에서 실수형 변환시에도 데이터 손실이 일어난다고 봐야 하나요?

보통 실수형에서 정수형 변환시 소수 아래 자리가 날라가므로 데이터 손실이 일어난다고 하죠.

반대로

정수형에서 실수형을 변환하는 과정에서, 부동소수점 표현 방식의 문제상 정확한 수치를 표현하지 못하는데

이때 일어나는 현상도 데이터 손실이라고들 말하나요?

예를 들어

int a = 1234567891;
float b = 1234567891;

을 입력하고 출력을 하게 되면

b 는 123456792.0 으로 출력이 됩니다.

페이지

프로그래밍 QnA 구독하기