QProcess ସନ୍ତାନକୁ ଏହାର ପ୍ରକ୍ସି ପରିବେଶ ଦିଅନ୍ତୁ
ଏକ Qt ସନ୍ତାନକୁ ଦିଆଯାଉଥିବା ପରିବେଶ ସେଟ୍ କରନ୍ତୁ ଏବଂ ଏହାକୁ ଏବେ ମଧ୍ୟ ଆବଶ୍ୟକ ଉତ୍ତରାଧିକାରୀ ମୂଲ୍ୟଗୁଡ଼ିକ ସଂରକ୍ଷିତ ରଖନ୍ତୁ।
QProcess ମାଧ୍ୟମରେ ଆରମ୍ଭ ହେଉଥିବା ଡାଉନଲୋଡର ପାଇଁ, ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ ସନ୍ତାନର ପରିବେଶ ତିଆରି କରନ୍ତୁ:
auto* download = new QProcess(parent);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("https_proxy", "http://proxy.example:8080");
download->setProcessEnvironment(env);
download->start("curl", {"--head", "https://www.example.com/"});ଏହି Qt ଅଂଶ ବିଦ୍ୟମାନ ପିତୃ ବସ୍ତୁ, ଘଟଣା ଲୁପ୍ ଏବଂ ସନ୍ତାନ ପାଇଁ ଉପଲବ୍ଧ curl ମାନି ନେଉଛି। ଚାଲୁଥିବା ସମୟରେ QProcess ଜୀବିତ ରଖନ୍ତୁ, ଏବଂ ଏହାର ସମାପ୍ତି ଓ ତ୍ରୁଟି ସଙ୍କେତଗୁଡ଼ିକ ଆପ୍ଲିକେସନରେ ସମ୍ଭାଳନ୍ତୁ। ପ୍ରକ୍ସି ପ୍ରମାଣପତ୍ର ନ ସେଟ୍ କରି ଏହି ସାର୍ବଜନୀନ ସାଇଟ ଯାଞ୍ଚ ପାଇଁ, HTTP ପ୍ରକ୍ସି ତାଲିକାରୁ ସନ୍ତାନର ପ୍ରକ୍ସି ମୂଲ୍ୟ ପାଇଁ ଉପଯୁକ୍ତ HTTP ଏଣ୍ଡପଏଣ୍ଟ ମିଳେ।
systemEnvironment ରୁ ଆରମ୍ଭ କଲେ PATH ପରି ଉତ୍ତରାଧିକାରୀ ମୂଲ୍ୟ ସଂରକ୍ଷିତ ରହେ। ଅନ୍ୟଥା ଖାଲି ପରିବେଶ ତିଆରି କରି ଏକ ପ୍ରକ୍ସି ଚର ଯୋଡ଼ିଲେ ସେହି ଅନ୍ୟ ଏଣ୍ଟ୍ରିଗୁଡ଼ିକ ଛାଡ଼ିଯାଏ।
ଚରର ନାମ ହିଁ ଚାବି। export ଏକ shell ନିର୍ଦ୍ଦେଶ, ସେ ଚାବିର ଅଂଶ ନୁହେଁ ଏବଂ QProcess ପ୍ରଥମେ ଚଲାଇବାକୁ ଥିବା କୌଣସି ନିର୍ବାହୀ ଫାଇଲ ମଧ୍ୟ ନୁହେଁ। ପରିବେଶକୁ ସିଧାସଳଖ ଦେଲେ URL ଚାରିପାଖରେ shell ନିର୍ଦ୍ଦେଶ ତିଆରି କରିବାରୁ ମଧ୍ୟ ରକ୍ଷା ମିଳେ।
setProcessEnvironment ଏହା ପରେ ଆରମ୍ଭ ହେଉଥିବା ପ୍ରକ୍ରିୟା ଉପରେ ଲାଗୁହୁଏ। ଏହା ପୂର୍ବରୁ ଚାଲୁଥିବା ସନ୍ତାନ କିମ୍ବା Qt ଆପ୍ଲିକେସନ ଆରମ୍ଭ କରିଥିବା shell ର ପରିବେଶ ବଦଳାଏ ନାହିଁ।
ବଛାଯାଇଥିବା ଡାଉନଲୋଡରକୁ ଏହି ଚର ବୁଝିବାକୁ ହେବ। ଏହି ଉଦାହରଣ curl ର HTTPS ଅନୁରୋଧ ପାଇଁ ଛୋଟ ଅକ୍ଷରର https_proxy ବ୍ୟବହାର କରେ ଏବଂ ଉତ୍ତରାଧିକାରୀ ବାଇପାସ ଇନପୁଟ ସଂରକ୍ଷିତ ରଖେ। ଅନ୍ୟ ଏକ ସନ୍ତାନ ପ୍ରୋଗ୍ରାମର ଅନ୍ୟ ପ୍ରକ୍ସି ଇଣ୍ଟରଫେସ ଥାଇପାରେ।