프로그래밍 QnA

ShaYEL의 이미지

C++ inline 함수에 관해 궁금한 것이 있습니다.

굉장히 자주 호출되고 코드 길이도 짧은 함수가 있어서, 인라인 함수로 바꿔보려고 하고 있습니다.

그런데 이 함수가 한 파일 내에서만 호출되는게 아니라 다른 여러 파일들에서 사용하고 있어서 이 함수를 정의한 소스파일은 실제로 실행되는 소스파일과 분리되어 있는 상태인데요. 인라인 함수에 관해 찾아보니 인라인 함수는 실제로 호출되는 함수 내에서 static inline으로 선언과 정의가 모두 이루어져야만 한다는 말이 있었습니다. 정말 인라인 함수의 정의를 다른 파일로 분리하는 방법은 없는 것인가요?

그리고 인라인 함수로 바꾼 뒤에 실제로 인라인이 적용되었는지를 확인하고 싶은데, 너무 큰 프로젝트라 어셈블리 파일을 확인해 보기는 좀 곤란할 것 같습니다. 어셈블리를 보는 것 외에 다른 확인할 수 있는 방법이 있을까요?

thrive2908의 이미지

c언어 끝낸뒤

c언어 끝내뒤 어떤것을 하는게 좋을까요

dcmru의 이미지

쉘스크립트에서 특정 파일의 평균사이즈 구하는 방법

안녕하세요.

특정 파일들의 평균사이즈를 구하려는데 사이즈가 커서 그런지 지수로 결과가 나옵니다.

사용한 명령은 다음과 같습니다.

# find ./ -name filename -print | xargs -i -t ls -al {} > a.txt
# awk -F" " '{sum+=$5} END {print "Average = ",sum/NR}' a.txt
Average = 2.02721e+06

다른 좋은 방법이 있으시면 조언 부탁 드립니다.

onepice0410의 이미지

sed로 특정 문자열의 위나 아래 라인 삭제하는 방법

특정 문자열의 위나 아래 라인에 불필요한 내용을 삭제하고 싶은대요

같은내용의 파일이 한두개가 아니라서 혹시 방법이 있을까요?

삭제 전 파일
version 1.1.1 -- 특정 문자열
test test test test -- 삭제하고 싶은 라인
asdf asdf asdf asdf

삭제 후 파일
version 1.1.1
asdf asdf adsf asdf

freebsd626의 이미지

[C언어 질문] fprintf 함수로 파일에 배열출력을하는데 Segmentation fault 가 뜹니다.

레드헷 리눅스/64비트 환경/C 언어 프로그래밍/gcc 컴파일러

질문 1.

fprintf 함수로 파일에 배열출력하려는데 컴파일때 에러는 안뜨는데, 실행파일 실행시 Segmentation fault 가 뜹니다.

하려는것은 아래와 같은 입력파일을 (실수형 3271 x 4 형 데이터)

---a.txt----
12.34 11.56 56.25 89.00
1.09 2.23 3.12 4.11
1.00 45.00 68.00 89.00
.
.

-----------

한줄한줄 열마다 a[i][0] 와같은 배열에 저장하여서...

다시 이 배열의 숫자들을 fprintf 함수를 써서 o.txt 에 똑같은 모습으로 다시 저장하고합니다.

아래와같이 코드를 짜고, gcc 컴파일을 하면 아무런 메세지가 뜨지않고 완료되고

실행파일을 실행시키면 Segmentation fault 가 뜨고, 목표한 o.txt 출력파일을 열어보면

어떠한 데이터도 없습니다.

criny333의 이미지

amd-v 활성화 후 커널을 돌리면 panic이 발생합니다.

버츄얼박스에서 리눅스 3.15.3 커널을 defconfig으로 빌드한 후에,
amd-v을 켜고 가상머신을 구동시키면 커널 패닉이 발생합니다.
amd-v를 키지않고 돌리면 커널 패닉이 발생하지 않습니다.

원인이 무엇일까요?
defconfig에서는 설정되지 않는 config을 추가해야 할것 같습니다.

trymp의 이미지

netlink 통신시에 받은 data 의 길이를 알려면 어떻게 해야 하나요?


linux 3.x (64bit) 에서 kernel -> user 간 netlink 소켓통신을 하려고 합니다.

kernel 에서 가변적인 binary data 를 user 로 send 하면

user daemon 에서 recvmsg 로 받으면 되는 걸로 알고 있습니다.

근데 받은 binary data 의 길이는 어떤 방법으로 알수 있죠?

NLMSG_DATA 매크로로 data 의 포인터 주소를 알 수 있는데 실 데이터의 길이는

어떤 식으로 알수 있는지 궁금합니다.

암만 뒤져도 스트링 보내는 예제 밖에 안나오네요.

고수님들의 조언 부탁드립니다.

plrmsu의 이미지

쉘 스크립트 내용이 이해가 가지 않습니다.

shell script 분석을 하고있는데

아래 표시해 놓은 부분이 이해가 되지 않습니다.

=~ 는 정규식을 일반 스트링이랑 비교 할때 사용하는 것으로 알고있는데

중간 중간 , 구분자가 들어가니 이해가 되지 않고 있습니다.

도움 부탁드립니다.

function is_service_enabled {
local xtrace=$(set +o | grep xtrace)
set +o xtrace
local enabled=1
services=$@
for service in ${services}; do
[[ ,${ENABLED_SERVICES}, =~ ,${service}, ]] && enabled=0 --------> 이부분이 어떻게 처리되는지 이해가 되지 않습니다.

criny333의 이미지

최신버전 grub2에서 오래된 커널이 동작하지 않습니다.

VirtualBox에 최신버전 lubuntu 14.04 버전을 깐 뒤에,
kernel 2.6.14.6 버전을 빌드하였습니다.

그런데 부트로더에서 커널 선택후, Uncompressing Linux... 에서 가상머신오류발생 메시지가 뜹니다...
VirtualBox 로그를 살펴보면 eip=0010007b 에서 머신이 종료되는걸로 봐서 아주 극초반에 무슨 문제가 있는거 같은데 감이 안잡히네요...

porawon의 이미지

load time relocation 궁금한 점이 있습니다.

http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/

이 블로그 글에 따르면 load time relocation을 사용할 시

실행 파일에서 공유 라이브러리의 전역 변수를 참조하려면 자신의 데이터 섹션에 값을 카피해서 그것을 참조한다고 하는데요.

페이지

프로그래밍 QnA 구독하기