「子構造体」が要素として「rusage構造体」を持つ次の2つの構造体があります。
次に、タイプ「子」の 2 つの構造体を作成します。それらを childA と childB と呼びましょう。
rusage 構造体だけを childA から childB にコピーするにはどうすればよいですか?
typedef struct{
int numb;
char *name;
pid_t pid;
long userT;
long systemT;
struct rusage usage;
}child;
typedef struct{
struct timeval ru_utime; /* user time used */
struct timeval ru_stime; /* system time used */
long ru_maxrss; /* maximum resident set size */
long ru_ixrss; /* integral shared memory size */
long ru_idrss; /* integral unshared data size */
long ru_isrss; /* integral unshared stack size */
long ru_minflt; /* page reclaims */
long ru_majflt; /* page faults */
long ru_nswap; /* swaps */
long ru_inblock; /* block input operations */
long ru_oublock; /* block output operations */
long ru_msgsnd; /* messages sent */
long ru_msgrcv; /* messages received */
long ru_nsignals; /* signals received */
long ru_nvcsw; /* voluntary context switches */
long ru_nivcsw; /* involuntary context switches */
}rusage;
私は次のようにしましたが、childA で使用法の値を変更すると、childB でも変更されるため、メモリの場所をコピーしていると思います。
memcpy(&childA,&childB, sizeof(rusage));
私はそれがchildAからのすべての値をchildBに与えることを知っています。childB の他のフィールドは既に処理済みです。必要なのは、「子」構造体にある使用法と呼ばれる rusage 構造体をコピーできることだけです。