안녕하세요! errcheck의 값이 0이 아니더라도이 코드는 항상 0을 반환합니다. 내가 리턴 1을 사용하면; 그것은 예상대로 작동합니다. 도와주세요?C++에서 변수를 반환 할 수 없습니다.
#include <iostream>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
umask(0);
mkdir("/tmp/.aget", 0755);
chdir("/tmp/.aget");
for (int i = 1; i < argc; i++)
{
string target(argv[i]);
string docommand("");
string s1("wget -q http://aur.archlinux.org/packages/");
string s2("/");
string s3(".tar.gz");
docommand += s1;
docommand += target;
docommand += s2;
docommand += target;
docommand += s3;
cout << "Downloading AUR tarball for '" << target << "'..." << endl;
int errcheck = system(docommand.c_str());
if (errcheck != 0)
{
cerr << "Could not retrieve tarball!" << " Errcheck status (debug): " << errcheck << endl;
return errcheck;
}
}
for (int i = 1; i < argc; i++)
{
string target(argv[i]);
string docommand("");
string s1("tar xf ");
string s2(".tar.gz");
docommand += s1;
docommand += target;
docommand += s2;
cout << "Extracting '" << target << ".tar.gz'..." << endl;
system(docommand.c_str());
}
for (int i = 1; i < argc; i++)
{
string target(argv[i]);
string docommand("");
chdir("/tmp/.aget");
chdir(target.c_str());
system("makepkg -csim --noconfirm > /dev/null");
}
rmdir("/tmp/.aget");
return 0;
}
주변 코드를 표시하십시오.이 코드가있는 함수 또는 메서드의 반환 형식은 무엇입니까? – unwind
함수 프로토 타입을 표시하고 반환 값을 확인하는 방법은 무엇입니까? 그것은 사인 문제 일 수 있습니다. 반환 값 한도 등 –
좋아요, 전체 소스 코드를 추가했습니다. – lupusarcanus