call_usermodehelper는 "&> 파일" 명령을 실행하지 않습니다.

call_usermodehelper는 "&> 파일" 명령을 실행하지 않습니다.
static int sony_get_bt_hostaddr(struct sony_sc *sc)
{
    int ret;

    char * envp[] = { "HOME=/", NULL };

    char * argv[] = { "system/bin/sh", "-c", "su", "'/vendor/bin/btnvtool -x'", "&>", "/sdcard/bthostaddr.txt", NULL };
    
        ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
    
        printk("sony_get_bt_hostaddr %x", ret);

        return 0;
}

sh 명령에서 출력을 가져오려고 하면 call_usermodehelper()반환 값이 0으로 반환되는 것이 올바른 결과인 것으로 추정되지만 그냥 stop인 것 같고 "'/vendor/bin/btnvtool -x'"argv의 마지막 부분이 "&>", "/sdcard/bthostaddr.txt"전혀 실행되지 않고 txt 파일을 찾을 수 없습니다. /sdcard/bthostaddr.txt.

터미널에 명령을 입력하면 전혀 문제가 없으며 system/bin/sh -c su '/vendor/bin/btnvtool -x' &> /sdcard/bthostaddr.txt파일이 생성되고 결과가 btnvtool -x나타납니다.

( 생성된 파일에서 결과가 ' '필요 /vendor/bin/btnvtool -x하거나 얻지 못하므로 코드에서 결과를 흉내냅니다.)

내 코드에 실제로 어떤 문제가 있습니까? 아니면 파일에 0/stores 대신 정확한 출력을 반환하는 다른 방법이 있습니까?

(ps: 코드는 참조용으로만 Android 환경에서 실행됩니다.)

관련 정보