apue function