The Reds signed Barnhart to a minor-league contract on Tuesday, Jon Heyman of the New York Post reports.
The Diamondbacks released Barnhart on Saturday.
Barnhart isn't in the Diamondbacks' lineup for Saturday's game versus Oakland.
Barnhart is out of the lineup for Thursday's game against the Twins.
Barnhart is not in the starting lineup for Sunday's game against Philadelphia.
Barnhart went 1-for-3 with an RBI in Saturday's 12-1 loss to the Phillies.
Barnhart is out of the lineup for Monday's game against the Giants.
Barnhart went 1-for-3 with a double and a run scored in Wednesday's 5-3 loss to the Cubs.
The Diamondbacks selected Barnhart's contract Monday.
Barnhart signed a minor-league contract with the Diamondbacks on Tuesday and received an invitation to major-league spring training.