ある試験問題(下書き、後で更新)


一、以下の安全な複製文字列関数にどのようなエラーがあるかを示します.

char *jl_strncpy( char *dest, const char *src, size_t n ) {

    char *d, *end;

    if ( 0 == n ) {
        return ( dest );
    }

    d   = dest;
    end = dest + n;

    for ( ; d < end; d++, src++ ) {
        if ( !( *d = *src ) ) {
            return ( d );
        }
    }

    *d = '\0'; /* always terminates with zero */
    return ( d );
}

二、linuxで「ls-l」コマンドを使用して、以下の結果を得ます.
...//具体的な内容は覚えていませんが・・・
質問:
1、コマンドを書き出して、現在のディレクトリに新しいディレクトリbaidu 6を作成し、baidu 6にサブディレクトリbaidu 7を作成してください.
2、コマンド「cat baidu 4>>baidu 2」が失敗する可能性があります.失敗の原因を指摘し、解決策を提出してください.
3、現在のディレクトリで所有者がdddであるファイルを列挙してください.shellプログラミングでこの問題を完成してください.
三、IPの重量を減らす
四、以下の構造を与え、2つのツリーが同じcompare関数かどうかをコードで比較し、関数の時間的複雑さと空間的複雑さを指摘する.2つのツリーは同時に1を返し、同時に0を返しません.

typedef struct _tree_node {
    struct _tree_node *lchild;
    struct _tree_node *rchild;
    int value;
} tree_node;

int compare( tree_node *r1, tree_node *r2 );